Пользовательская директива Angularjs не меняет DOM - PullRequest
0 голосов
/ 24 мая 2019

Используйте ng-if в директиве Angularjs

У меня есть поток 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 голосов
/ 28 мая 2019

Ваш toggleValue является локальной переменной и не связан с $scope.Для обновления DOM вам нужно добавить toggelValue в $scope.

. Измените функцию ссылки на:

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

Теперь вы должны увидеть обновленный DOM.Подробнее здесь :

...