更新$ rootScope。$ broadcast

时间:2014-08-26 14:07:46

标签: javascript angularjs rootscope

如何使用新值更新$ rootScope。$ broadcast?

考虑以下代码:

var test = "fisk";

if(angular.element(this).hasClass('monster')) {
    var monster_info = angular.element(this).find("img").attr("title");
    $http.get("lib/terrain.php", {params: { monster_data:monster_info}}).success(function(data) {
            console.log(data);
            $rootScope.$broadcast('mapInfo', data);
    });
} else {
  $rootScope.$broadcast('mapInfo',test);
}

这是我的控制器:

$scope.$on('mapInfo', function(event, mapInfo) {
    $scope.mapInfo = mapInfo;
    console.log($scope.mapInfo);
});

这是我的HTML:

<div ng-bind-html="safeHtml(mapInfo)"></div>

这几乎可行。当我进行ajax调用时,mapInfo会更新并在包含数据的页面上打印出来。但是,如果我没有进行ajax调用,则不会在页面上打印出fish的值。我可以看到$ rootScope正在通过值fisk更新:console.log($ scope.mapInfo),但它没有打印出来。

1 个答案:

答案 0 :(得分:0)

这是代码的简化版本

`http://jsfiddle.net/HB7LU/5693/`

它可以打印出mapInfo

相关问题