$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) によって更新されていることがわかりますが、出力されていません。