ngModel未在指令中更新

时间:2015-05-30 21:07:18

标签: angularjs angularjs-directive angularjs-scope

我有一个检测文件输入更改的指令,旨在设置模型。但是,文件更改后未设置图像文件模型。我已经能够打印出controller.modelValue [0] .name的值并进行设置。但是当它返回图像文件模型时为null。

有关如何解决此问题或我做错的建议?

HTML代码在这里

<input type="file" id="fileInput" multiple ng-model="imagefile" file-feed/> 

file-feed属性的指令是

.directive('fileFeed', [
        function() {
            return {
                restrict: 'A',
                require: 'ngModel',
                link: function(scope, element, attributes, controller) {
                    element.bind("change", function(changeEvent) {
                        //alert("fired");
                        var files = [];
                        for (var i = 0; i < element[0].files.length; i++) {
                            //alert(element[0].files[i].name);
                            files.push(element[0].files[i]);
                        }

                        controller.$modelValue = files;

                        scope.$apply(function(){
                            **controller.$modelValue = files;**
                            console.log(controller.$modelValue[0].name);
                        });
                    });
                }
            };
        }
    ]);

模态控制器在这里

.controller('ProfilePictureModalInstanceCtrl', function ($scope, $modalInstance, items, $timeout) {

    $scope.imagefile = "";

    $scope.checkImageFiles = function(){
        console.log($scope.imagefile);
    }

    $scope.ok = function () {
        $modalInstance.close($scope.optionItems);
    };

    $scope.cancel = function () {
        $modalInstance.dismiss('cancel');
    };
})

我在模态中有一个按钮,它调用控制器中的一个函数来打印出图像文件的值。

<button ng-click="checkImageFiles()">Check Images</button>

我试图通过controller.modelValue属性

返回文件

0 个答案:

没有答案