javascript-如何从`directive`控制器更新`$scope`对象
作者:互联网
我正在尝试从控制器更新$scope对象,但未更新.但是在控制台中,我正在获取更新状态.
这是我的代码:
var galleryMenu = ['$route', function ($route) {
return {
scope : true,
replace : true,
template : function () {
var page = $route.current.className || 'home';
return galleryMenuItem(page);
},
controller : function ($scope, $element) {
$scope.galleryProject = function () {
$scope.galleryShow = !$scope.galleryShow;
console.log($scope.galleryShow) //gives me true, but `DOM` not updating.
}
}
}
}];
解决方法:
您的指令正在使用scope:true表示您已创建一个原型,该原型通常是从父范围继承的.
然后您的galleryShow对象应该遵循dot rule
$scope.model = {};
$scope.model.galleryShow = 'something';
因此,在您的指令中,您可以通过原型继承来获取$scope.model对象,并且可以通过$scope.model.galleryShow对其进行更改,它将更改父范围.
指令控制器
controller : function ($scope, $element) {
$scope.galleryProject = function () {
$scope.model.galleryShow = !$scope.galleryShow;
console.log($scope.model.galleryShow) //gives me true, but `DOM` not updating.
}
}
标签:angularjs,angularjs-directive,angularjs-scope,prototypal-inheritance,javascript 来源: https://codeday.me/bug/20191120/2041355.html