$ rootScope在AngularJs中没有与我合作

时间:2016-04-02 17:08:28

标签: javascript angularjs

我在我的函数中得到了$ rootScope的值但是我想在我的Controller的所有函数中得到thsi值以将它传递给另一个控制器: 你可以帮帮我吗

我的HTML:

<input type="checkbox"   ng-model="u.selected" data-ng-click="consoleClient(u)">

我的脚本代码:

$scope.client = {
    id : null,
    nom : '',
    nberPhone : '',
    adresse : '',
    selected : false
};

$scope.consoleClient = function(client) {
    $rootScope.test = client;

    console.log(" lll "+$rootScope.test);
};
console.log(" aaaa "+$rootScope.test);

控制台日志返回正确的结果但是第二个Out函数返回undefined。你能解释一下我的原因吗。

1 个答案:

答案 0 :(得分:7)

是的,因为你没有调用$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"