Angularjs Rootscope函数中的角度变化范围变量-如何实现?
我的rootscope中有一个通用函数。我有多个控制器使用相同的功能 我需要更改Rootscope函数中的Scope变量 在JS中Angularjs Rootscope函数中的角度变化范围变量-如何实现?,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我的rootscope中有一个通用函数。我有多个控制器使用相同的功能 我需要更改Rootscope函数中的Scope变量 在JS中 angular.module('myApp', []) .run(function($rootScope) { $rootScope.rs = new Date(); $rootScope.changeRsFromRs = function() { $rootScope.rs = new Date(); }; //Not Working $root
angular.module('myApp', [])
.run(function($rootScope) {
$rootScope.rs = new Date();
$rootScope.changeRsFromRs = function() {
$rootScope.rs = new Date();
};
//Not Working
$rootScope.changeSFromRs = function() {
$scope.s = new Date();
};
})
.controller('myCtrl', function($scope, $rootScope) {
$scope.s = new Date();
$scope.changeSFromS = function() {
$scope.s = new Date();
};
$scope.changeRsFromS = function() {
$rootScope.rs = new Date();
};
});
在Html中
<button class="not-working" ng-click='changeSFromRs()'>Change Scope value from Rootscope</button>
从根范围更改范围值
这可能是不可能的,因为您的$rootScope没有任何范围的引用,也没有“打算”这样做
如果有帮助,您可以将$rootscope注入控制器并绑定到它
app.controller('sampleCtrl', function($scope, $rootScope){
$scope.var = $rootScope.var2;
});
干杯。为什么不调用rootScope函数呢
var myApp = angular.module('myApp', []);
myApp.run(function($rootScope) {
$rootScope.rs = new Date();
$rootScope.updateDate = function() {
$rootScope.rs = new Date();
};
});
myApp.controller('myCtrl', ['$scope', function($scope){
}]);
我想如果你能为这个服务的话,这会更好
myApp.service('DateService', function() {
return {
getDate: function() {
return new Date();
}
};
});
查看更新的可以使用此关键字 在JS中:
$rootScope.changeSFromRs = function(scope) {
scope.s = new Date();
};
在HTML中:
<button class="not-working" ng-click='changeSFromRs(this)'>Change Scope value from Rootscope</button>
从根范围更改范围值
为什么您认为这应该是可能的$changeSFromRs函数中未定义范围。这是不可能的,因为当您返回根范围时,上下文范围未定义。对于服务内部的解决方案,使用angular services+1可能可以实现您想要实现的目标。。。如果可能,应始终避免使用rootscopeyes。你是对的。最好使用服务。但对于张贴的问题,请参阅我的答案