2

angularのデータにsseデータを渡そうとしましたが、表示されません。これが私が試した方法です:

(私の見解)

<body ng-app>
  <div ng:controller="Main">
    <ul>
      <li ng:repeat="item in items">
        name:{{item.name}},age:{{item.age}}
      </li>
    </ul>
  </div>
</body>

(角文字)

var source = new EventSource('/feedcontain/test');

function Main($scope) {

  $scope.items = [];

  source.addEventListener('right', function(e) {
     $scope.$apply(function() {
      $scope.items.push(e.data);
     });
    },
  false);

 }    

(/feedcontain/テスト)

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

echo "data: [{name:'john', age:23}, {name:'Mary', age:28}, {name:'Sean', age:28}] \n\n";

表示したかったname:john, age:23のですが、空になります。データを変更または追加した後に何かを作成しようとすると、angularjs にプッシュされます。何か案が?どうもありがとう。

4

1 に答える 1

0

イベントが発生している場合は、name:,age:結果で終了します。あなたがすべきことは、配列を受け取っているので、concat代わりにingすることだけです。push

$scope.items = $scope.items.concat(e.data);

$scope.items参照は変更され、Angular が壊れることはありませんが、Angular への他の参照が壊れる可能性があることに注意してください。変更しないようにする必要がある場合は、各要素に aforを使用します。push

于 2013-03-23T13:27:31.193 に答える