gpt4 book ai didi

javascript - 你能更新一个 Controller 来更新它的子范围吗?

转载 作者:行者123 更新时间:2023-11-30 12:14:48 25 4
gpt4 key购买 nike

假设我有一个这样的 Controller 和指令:

app.controller('mainController', function($scope) {
$scope.loading = true;
$scope.updateTest = function(){
$scope.loading = false;
}
}).directive('loading', function() {
return {
restrict : 'E',
transclude: true, // use parent scope
link : function(scope, element, attrs) {
scope.$watch('loading', function(ctx) {
console.log('updating?', ctx)
});
}
}
});

还有一个 html 标记:

<section ng-controller="mainController">
<loading ng-show="loading">
loading?
</loading>
<button ng-click="updateTest()">Force update</button>
</section>

我只是想知道如何从一个指令中观察父作用域,我似乎无法让它工作!

我正在使用 Angular 1.3.16

最佳答案

我建议你像这样使用隔离范围并将所有变量传递给它:

.directive('loading', function() {
return {
restrict : 'E',
scope: {
ngModel: '='
},
transclude: true, // use parent scope
link : function(scope, element, attrs) {
scope.$watch('ngModel', function(ctx) {
console.log('updating?', ctx)
});
}
}
});

HTML

<loader ng-model="loading" ng-show="loading">
loading?
</loader>

关于javascript - 你能更新一个 Controller 来更新它的子范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689491/

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