AngularJS ng-repeat不适用于回调数据

时间:2016-01-11 23:54:17

标签: angularjs socket.io ng-repeat

我有一个JavaScript函数

function wantConversation(socket, callback) {
    if(socket)
    {
        socket.emit('user.wantConversation');
    }
    socket.on('user.getConversation', function(data) {
        callback(data);
    });
}

它将一个Conversations列表返回到一个数组中,然后将其调用到我的Angular Controller

var panel_app = angular.module('panel-app', [])
    .controller('panel-controller', function($scope){
        wantConversation(socket, function(data) {
            $scope.conversations = data;
        });
    };
});

但我的ng-repeat不起作用:(我知道问题是回调功能。
这是我的Html

<div ng-repeat="x in conversations | filter: searchBox">
    {{ x.name }}
    // ...
</div>

1 个答案:

答案 0 :(得分:4)

当在范围上下文之外修改范围时,您需要告诉角度,以便它可以运行摘要周期来更新视图

尝试

wantConversation(socket, function(data) {
    $scope.conversations = data;
    $scope.$apply();// tell angular to update view
});