Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $rootScope在AngularJs中不与我合作_Javascript_Angularjs - Fatal编程技术网

Javascript $rootScope在AngularJs中不与我合作

Javascript $rootScope在AngularJs中不与我合作,javascript,angularjs,Javascript,Angularjs,我在函数中获取$rootScope的值,但我想在控制器的所有函数中获取thsi值,以便将其传递给另一个控制器: 你能帮我吗 我的HTML: <input type="checkbox" ng-model="u.selected" data-ng-click="consoleClient(u)"> 控制台日志返回正确的结果,但函数中的第二个返回未定义的结果。你能给我解释一下原因吗。是的,因为你没有调用$scope.consoleClient,所以它没有在函数范围之外定义。调用函数

我在函数中获取$rootScope的值,但我想在控制器的所有函数中获取thsi值,以便将其传递给另一个控制器: 你能帮我吗

我的HTML:

<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"