0

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

4

1 に答える 1

0

これはコードの簡略化されたバージョンです

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

mapInfo を出力できます

于 2014-08-26T17:44:16.647 に答える