0
我有一個指令到我傳遞是動態生成的對象:深手錶屬性傳遞給一個指令
<my-directive passed-value="ctrl.buildValue()"></my-directive>
angular
.module('myModule')
.directive('myDirective', function() {
return {
restrict: 'E',
scope: {
passedValue: '='
},
controllerAs: 'ctrl',
bindToController: true,
templateUrl: 'templates/my-directive.html',
controller: function() {
var that = this;
}
};
}]);
假設對象始終是一個新的對象,但對象屬性不會改變,例如:
myController.buildValue = function() {
return {someValue: 'abcd'}
};
然後角度進入無限循環,因爲(我認爲)返回的對象始終是一個新的對象。
那麼我怎麼能要求角度考慮對象沒有改變,如果它的屬性是相同的,即使對象是新的?
這應該是可能的,因爲我知道當我深入觀察一個物體時(使用$watch(..., true)
),角度認爲如果物體的屬性相同,即使物體始終是新物體,它也是相同的。
的'$ watch'作爲和可選參數'objectEquality '你可以設置爲'true',它使用'angular.equals'而不是引用,[$ rootScope.Scope](https://docs.angularjs.org/api/ng/type/$rootScope.Scope)。這可能會幫助你 – taguenizy