在下面的代码中,我想在指令中增加一个计数器,并更改背景颜色。如果计数器是偶数,则背景颜色应为“红色”,否则为“绿色”。
然而,柜台工作,但背景永远不会改变。我的代码有什么问题?
顺便说一句,另外两个问题:
- 警报对话框不会显示,即使在按钮的 ng-click 事件中调用它也是如此。为什么?
- 'counter++' 似乎在 ng-click 中不起作用,它必须是 'counter = counter + 1',对吗?
JavaScript:
function myDirective(){
return {
template: '<div>{{count}}</div>',
replace: false,
transclude: false,
restrict: 'A',
scope: {count:'='},
link: function(scope, el, attrs){
//------------- Observe 'count' ----------------
attrs.$observe('count', function(newVal, oldVal){
var bgColor = newVal % 2 == 0 ? 'red' : 'green';
angular.element(el).css('background-color', bgColor);
});
}
};
};
angular.module('app', []).directive('myDirective', myDirective);
HTML:
<body data-ng-app='app' data-ng-init="count=1">
<button ng-click='alert("aa"); count=count+1; '>Increase</button>
<div my-directive count='count'>
</body>