【问题标题】:AngularJS ng-repeat doesn't work with callback dataAngularJS ng-repeat 不适用于回调数据
【发布时间】:2016-01-11 23:54:16
【问题描述】:

我有一个 JavaScript 函数

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

它将对话列表返回到一个数组中,然后我将其调用到我的 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>

【问题讨论】:

    标签: angularjs socket.io ng-repeat


    【解决方案1】:

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

    试试

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

    【讨论】:

    • 重要的是要意识到socket 不是角度的一部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多