2

我的 HTML

ng-appng-controller在前面的标记中指定

<div class="statusEntry" ng-repeat="statusInput in statusInputs">
 <span class="userName"> a </span>                
 <span  class="statusMsg"> b </span>                
</div>

控制器

app.controller('globalCtrl', ['$scope', function($scope) {
//someWork
pubnub.subscribe({
channel: "statuses",
callback:
function (data) {

    splitData = data.split(';');
    prepData = '{'+splitData[0]+','+splitData[1]+'}';
    statusInputs.push(prepData);
}
});

当我推送数据时,不会出现新对象。Angular 没有得到数据,即使我在前面statusInputs加上$scope.

看起来我需要将数据从嵌套函数传递到根范围,我不知道如何。

4

1 回答 1

4

首次访问控制器时初始化数组:

$scope.statusInputs = [];

并在您的回调函数中更改:

statusInputs.push(prepData);

$scope.statusInputs.push(prepData);
//also, because pubnub is defined outside of angular
//call $scope.$apply() to force angular to recognize 
//the change on the scope
$scope.$apply()

基本上,您在您的范围内声明一个数组,您的 UI 将使用该数组,然后在每次回调时将项目附加到该绑定数组中。

于 2014-03-27T19:51:22.000 回答