gpt4 book ai didi

angularjs:从指令更​​新 $rootScope 变量

转载 作者:行者123 更新时间:2023-12-04 14:13:08 27 4
gpt4 key购买 nike

从指令更新 rootScope 变量的 Angular 方式是什么?
我无法理解作用域在指令中的工作方式......

到目前为止,我只能在范围级别更改变量。

app.run(['$rootScope', function($rootScope) {
$rootScope.foo = false;
}

app.directive('myDirective', [function(){
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
scope.$parent.foo = true;
scope.$parent.apply();
});
}
}
}]);

<!-- does not update foo -->
<p>{{ foo }}</p>

<!-- updates foo -->
<div my-directive><p>{{ foo }}</p></div>

最佳答案

如需访问$rootScope任何你需要注入(inject)它的地方,它就会变得可用:

app.directive('myDirective', ['$rootScope', function($rootScope) {
return {
restrict: 'A',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
$rootScope.foo = true;
$rootScope.$apply();
});
}
}
}]);

还有一种更简单的不需要注入(inject)的方法。每 scope对象可以通过 $root 访问最顶层的 $rootScope引用。这意味着你也可以这样做:
scope.$root.foo = true;

关于angularjs:从指令更​​新 $rootScope 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22871983/

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