AngularJS自定义指令不更改DOM

时间:2019-05-24 19:24:39

标签: angularjs angularjs-directive angularjs-components

在Angularjs指令中使用ng-if

我有一个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中什么也没发生。

1 个答案:

答案 0 :(得分:0)

您的toggleValue是局部变量,未绑定到$scope。要更新DOM,您需要在toggelValue上添加$scope

将链接功能更改为:

link(scope) {
        something();
        function something() {
            showTaskDetailView$.subscribe(value => {
                scope.toggleValue = value; <-------------
                console.log(scope.toggleValue);
            });
        }
    }

现在您应该看到更新的DOM。阅读更多here