Javascript $rootScope在AngularJs中不与我合作
我在函数中获取$rootScope的值,但我想在控制器的所有函数中获取thsi值,以便将其传递给另一个控制器: 你能帮我吗 我的HTML:Javascript $rootScope在AngularJs中不与我合作,javascript,angularjs,Javascript,Angularjs,我在函数中获取$rootScope的值,但我想在控制器的所有函数中获取thsi值,以便将其传递给另一个控制器: 你能帮我吗 我的HTML: <input type="checkbox" ng-model="u.selected" data-ng-click="consoleClient(u)"> 控制台日志返回正确的结果,但函数中的第二个返回未定义的结果。你能给我解释一下原因吗。是的,因为你没有调用$scope.consoleClient,所以它没有在函数范围之外定义。调用函数
<input type="checkbox" ng-model="u.selected" data-ng-click="consoleClient(u)">
控制台日志返回正确的结果,但函数中的第二个返回未定义的结果。你能给我解释一下原因吗。是的,因为你没有调用
$scope.consoleClient,所以它没有在函数范围之外定义。调用函数后,它将工作:
$scope.consoleClient = function(client) {
$rootScope.test = client;
console.log(" lll "+$rootScope.test);
};
$scope.consoleClient('clientName');
console.log(" aaaa "+$rootScope.test); // output: ' aaaa clientName'
如果要查看函数外部变量的更改,可以执行以下操作:
$scope.$watch(function() {
return $rootScope.test;
}, function(newValue, oldValue) {
console.log('Old value: ', oldValue);
console.log('New value: ', newValue);
}, true); // Note the "true" - Compare the object using "angular.equal"
谢谢您的回答,但我需要获取我传入的clientName参数我应该如何获取它?您传入参数的客户端是从视图生成的调用-因此在用户单击复选框后它将可用。请注意,您应该使用ng change
,因为它将在模型更改(选中/取消选中)后触发。非常感谢,现在我非常理解它:)不客气。注意,我添加了一个示例,用于观察函数范围外的值的变化
$scope.$watch(function() {
return $rootScope.test;
}, function(newValue, oldValue) {
console.log('Old value: ', oldValue);
console.log('New value: ', newValue);
}, true); // Note the "true" - Compare the object using "angular.equal"