变量更改后,Angular.js更新范围

时间:2014-07-02 07:52:45

标签: javascript angularjs angularjs-scope angularjs-ng-repeat

我的网页中有一个搜索栏,它与一个控制器相关联,该控制器接收来自服务器的响应的JSON对象。

然后我将此响应保存在名为assetResult的全局变量中。

首次正常运行,但当我进行新搜索时,$scope的{​​{1}}未更新

控制器搜索栏

searchResultController

控制器搜索结果

mwm3.controller('searchBarCtrl', function($scope, $location, $timeout, AssetService) {
        $scope.radioValue = 'id';
        AssetService.connect();
        AssetService.subscribe(function(message) {
            var obj;
            try {
                //$scope.ocw.push(message);
                obj = eval("(function(){return " + message + ";})()");
                AssetResult = obj;
                console.log(message);

                $location.url('/searchResult');
            } catch (e) {
                obj = eval("(function(){return " + message + ";})()");
                alert(obj.Error);
            }
            //$route.reload();

        });

        $scope.send = function() {
            AssetService.send($scope.radioValue + '=' + $scope.searchKey);

        };

    });

我在mwm3.controller('searchResultCtrl', function($scope, $location, AssetDetailService) { $scope.$apply(function() { $scope.asm = AssetResult; }); if (!AssetResult) { $location.url('/login'); } }); 中使用$scope.apply,但相关视图无论如何都不会刷新。

我的问题在哪里?

提前致谢

1 个答案:

答案 0 :(得分:2)

在我看来,好像来自AssetService的消息没有开始新的角度摘要。试试searchBarCtrl

AssetResult = obj;
$scope.$apply();