HTML:
<div ng-app="myApp" ng-controller="Controller">
<test ng-if="toggle" props="condition"></test>
</div>
Javascript:
var myApp = angular.module('myApp', []);
myApp.controller('Controller', ['$scope', '$timeout', function($scope, $timeout) {
$scope.condition = [true];
$scope.toggle = $scope.condition[0];
$scope.$watch('condition', (newv, oldv, scope) => {
console.log('old: ' + oldv);
console.log('new: ' + newv);
console.log('toggle: ' + scope.toggle);
}, true);
}]);
myApp.directive("test", function() {
return {
template: '<div>directive show</div>',
replace: true,
scope: {
props: "="
},
controller: ['$scope', '$timeout', function($scope, $timeout) {
$scope.props[0] = false;
}]
}
});
行为是在condition[0]被指令更改为 false 后,我可以在控制台日志中看到新值,但toggle没有更新。
我的问题是:
为什么更改toggle时不更新condition[0]?为什么摘要周期也没有更新toggle?或者toggle,当其分配的值发生变化时,摘要循环甚至会更新吗?
而且我不是在寻求解决此问题的方法,而是寻求解决此问题的原因。
红糖糍粑
泛舟湖上清波郎朗
相关分类