升级AngularJS 1.1.5后的绑定问题 - > 1.2.11

时间:2014-02-03 23:41:35

标签: angularjs binding angularjs-directive

因此我们编写了一个指令,在从1.1.5升级到1.2.11后停止绑定。我不明白为什么会破坏。这是指令代码:

angular.module("ui.bootstrap.fileupload", []).directive('fileupload', ['$compile', function($compile) {
  return {
    scope: {
        prompt: '=',
        changePrompt: '=',
        model: '='
    },
    replace: true,
    templateUrl: '/app/partials/fileupload.html',
    link: function($scope,element,attrs) {
        $(element).fileupload();

        $(element).find("input[type='file']").change( function(event) {
            $scope.$apply(function() {
                var fileElement = $(element).find("input[type='file']");
                $scope.model = [];
                for (var i = 0; i < fileElement[0].files.length; i++) {
                    $scope.model.push(fileElement[0].files[i]);
                }
            });
        });
    }
  }
}]);

问题是行$scope.model = []。这会导致绑定丢失,现在更改为$scope.model不会跨越边界传播回绑定的任何内容。现在这在1.1.5上工作得非常好。我在更改日志或迁移指南中找不到任何解释此内容的内容。那里没有任何与绑定相关的内容。

该指令的用法如下:

<div fileupload model="uploadFile" prompt="'Select File'" change-prompt="'Change'"></div>

如果我不将$scope.model重新分配给新阵列。双向绑定有效。那么这里发生了什么?

0 个答案:

没有答案