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

AngularJS ng-repeat doesn't work with callback data

我有一个JavaScript函数

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

它 Return 一个对话列表到一个数组中,我将它调用到我的 Angular 控制器中

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>

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

尝试

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