我有一个div,其元素依赖于ng-class
来设置一些样式属性(它调用一个返回一串类的函数)。通常当修改div中的某些内容时,Angular会为我重新计算所有ng-class
个变量。但是,我在这个div外面有一个按钮,它只是添加一个类来改变它的宽度;当发生这种情况时,Angular不会重新计算ng-class
函数。只有在我在div内部做了一些动作之后才能为我计算一切。有没有什么办法可以在按下这个外部按钮后强制Angular重新计算?
答案 0 :(得分:0)
如果将数据传递给指令
,可能会有效
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
})
.directive('testDirective', function() {
return {
restrict: 'E',
scope: {
classData: '='
},
template: '<div ng-class="classData"> My directive </div>'
};
});
.blue {
background: blue;
}
.green {
background: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<test-directive class-data="myClass"></test-directive>
<input type="text" ng-model="myClass" />(green or blue)
</div>