1
我有点挣扎着让我的头周围.directive
,我想要做的就是给力/或方式,使该指令被称为如果值的变化。现在,只有在刷新浏览器时才会更改该值。但是,如果该值由其他服务更改,我希望该值可以动态地被替换。
这里是控制器
$scope.status = 'warning';
下面是HTML
<tr>
<th>status</th>
<td><icon-selector filterby="status"></icon-selector></td>
</tr>
这里指令
angular.module('myApp')
.directive('iconSelector', function ($compile, $timeout) {
var linkingFunction = function (scope, element, attrs) {
scope.$watch('filterby', function() {
if (scope.filterby === 'OK') {
element.replaceWith('<p>Running OK</p>');
} else {
element.replaceWith('<p>Not running</p>');
}
});
};
return {
restrict: 'E',
scope: {
filterby: '=filterby'
},
link: linkingFunction
};
});
现在,如果我设置$scope.status = 'danger';
与地方$watch
,我希望`指令中的函数被再次执行,但它没有t被执行,它只在页面被重新加载时才被执行。
有人能告诉我,我做错了什么吧。
Hmm..weird,怎么是这样做,你能告诉我一个例子在这里请。 – 2014-11-06 17:58:35
在这里你去(注意“替换”:true和模板属性) – 2014-11-06 18:02:13
因此,我的html保持不变,在问题块中显示得到改变? – 2014-11-06 18:05:48