我的HTML
ng-app
和ng-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
。
看起来我需要将数据从嵌套函数传递到根作用域,我不知道如何。
答案 0 :(得分: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()
基本上你在你的用户界面上声明了一个数组,然后在每个回调时你将项目附加到该绑定数组中。