角度范围,控制器嵌套

时间:2017-01-26 15:21:26

标签: javascript angularjs

我有一个加载屏幕显示我何时将数据存储到服务器,但在我完成$http请求之前它不会更新。有人可以解释一下原因吗?

控制器:

app.controller('controller1',controller1); 
controller1.$inject=['$scope', '$http', 'myService', 'basketService']; 
function controller1($scope, $http, myService, basketService) {
    //code    
};

app.controller('controller2',controller2); 
controller2.$inject=['$scope', '$http', 'myService', 'basketService']; 
function controller2($scope, $http, myService, basketService) {
    $scope.doSomething = function(){
        $scope.iWantToUpdateThis = true;
    };    
};

HTML:

<body ng-controller="controller1">
    <div ng-cloak ng-show="iWantToUpdateThis">
    </div>
    //code
    <button ng-controller="controller2" ng-click="doSomething()">
        clickMe
    </button>
<body>

我已尝试使用$scope.$apply(),但它表示摘要循环已在执行中。

1 个答案:

答案 0 :(得分:0)

$scope.iWantToUpdateThis = true;位于&#39; controller1&#39;当您在&#39; controller2&#39;

中更新其值时

您已将控制器2中的功能更改为:

$scope.$parent.iWantToUpdateThis = true;

我已经为你做了plunker