我有一个showTaskDetailView$
流可以订阅,并且可以通过它推送布尔值。
angular.module('Project').directive('something', () => {
return {
restrict: 'E',
template: '<div>something: {{toggleValue}}</div>',
replace: true,
link() {
something();
function something() {
showTaskDetailView$.subscribe(value => {
let toggleValue = value;
console.log(toggleValue);
});
}
}
};
});
运行此指令并更改showTaskDetailView$
值时,我在console.log中看到了新值。但是DOM中什么也没发生。
答案 0 :(得分:0)
您的toggleValue
是局部变量,未绑定到$scope
。要更新DOM,您需要在toggelValue
上添加$scope
。
将链接功能更改为:
link(scope) {
something();
function something() {
showTaskDetailView$.subscribe(value => {
scope.toggleValue = value; <-------------
console.log(scope.toggleValue);
});
}
}
现在您应该看到更新的DOM。阅读更多here: