簡體   English   中英

更新$ rootScope。$ broadcast

[英]update $rootScope.$broadcast

如何用新值更新$ 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),但未打印出來。

這是代碼的簡化版本

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

它可以打印出mapInfo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM