gpt4 book ai didi

angularjs - 指令链接函数中的scope.$watch没有被调用

转载 作者:行者123 更新时间:2023-12-02 22:31:22 25 4
gpt4 key购买 nike

我有这个工厂,

.factory('authentication', [function() {

return {
loginRequired: false
};
}]);

我有这个 Controller ,

.controller('TopNavCtrl', ['$scope', 'authentication', function($scope, authentication) {

$scope.login = function() {
authentication.loginRequired = true;
};

}]);

我在指令中有这个链接函数,

link: function(scope, element, attrs) {

scope.show = false;

scope.$watch(authentication.loginRequired, function(value) {
scope.show = value;
});
}

当在 Controller 中完成 authentication.loginRequired = true; 时,不会调用指令中的 scope.$watch

有什么想法吗?

最佳答案

Scope.$watch接受表达式或函数作为第一个参数。您作为第一个参数传递的是存储在 authetication.loginRequired 中的

以下内容将起作用(假设您已正确注入(inject)authentication工厂):

link: function(scope, element, attrs) {

scope.show = false;

scope.$watch(function(){return authentication.loginRequired;}, function(value) {
scope.show = value;
});
}

关于angularjs - 指令链接函数中的scope.$watch没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com