javascript - $apply 未知提供者错误

标签 javascript angularjs

我正在尝试使用 express.jssocket.ioangular 构建一个非常简单的聊天。有用。我遇到的唯一问题是当触发套接字消息事件时,它没有同步并将其呈现到页面上。

 var socket = io.connect('http://localhost:8080');



angular.module('chat',[]).controller('chatController',['$scope','$apply',function($scope,$apply){
    chat = $scope;
    chat.messages = [];

    socket.on('messages',function(data){
        chat.$apply(function(){
            chat.messages.push(data);
        });
    });
}])

我知道我应该以某种方式使用 $apply 但它给我一个未知提供者的错误。 实现 $apply

的正确方法是什么

最佳答案

无需将 $apply 作为依赖传递,

试试这个

angular.module('chat',[]).controller('chatController',['$scope',function($scope){
     $scope.messages = [];
     socket.on('messages',function(data){
         $scope.$apply(function(){
             $scope.messages.push(data);
        });
    });
}])

关于javascript - $apply 未知提供者错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37360601/

相关文章:

javascript - 使用 Webpack,如何动态加载使用另一个 Webpack 构建的外部模块

javascript - angularjs:$scope.$watch在for循环内不起作用

javascript - 如何在angularjs中将输入字段验证为总页数

javascript - 如何将 JavaScript 对象转换为实际文件以便使用 HTML5 上传

javascript - Angularjs 外部模板 : the template cannot be loaded?

javascript - 从外部更改 Phaser 状态

javascript - 为什么在 array.filter, lambda 中得到这个结果? javascript

javascript - 将列表返回到 JSON 到 Angularjs

javascript - 如何将单个参数传递给自定义属性指令?

javascript - Angularjs:如何捕获 <td> 标记中的文本并在我的 Controller 中使用它