如何使用新值更新 $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) 更新,但它没有被打印出来。