繁体   English   中英

AngularJS-错误:[ng:areq]参数'fn'不是一个函数,得到了字符串

[英]AngularJS - Error: [ng:areq] Argument 'fn' is not a function, got string

我收到一个错误:

错误:[ng:areq]参数'fn'不是一个函数,得到了字符串

我阅读并应用了其他建议。 但是我还没有解决问题。

这是我的代码:

controller.js

angular.module('starter.controllers', [])
   .controller('DashCtrl', function ($scope,$ionicScrollDelegate,SocketService) {
      var me = this;
      me.messages = [];
      $scope.sendTextMessage = function() {
        var msg = {
          'text': me.messages
      }
      me.messages.push(msg);
      $ionicScrollDelegate.scrollBottom();
      me.messages = '';
      SocketService.emit('mesaj', msg);
   };
});

services.js

angular.module('starter.services', [])
   .service('SocketService', ['socketFactory'],
      function SocketService(socketFactory) {
        return socketFactory({
           ioSocket: io.connect('http://l92.168.1.27:3000')
        });
   });

声明角度模块时删除第二个参数。

因此,将其更改为: angular.module('starter.controllers', [])更改为: angular.module('starter.controllers')

有两件事让我大吃一惊;

1)不打针; 将这些行修复为:

.controller('DashCtrl', ['scope', '$ionicScollDelegate', 'SocketService', function ($scope,$ionicScrollDelegate,SocketService){

.service('SocketService', ['socketFactory',

尽管最后一行,我将像这样简单地将SocketService()函数写入其中:

app
 .service('SocketService', ['socketFactory', function(socketFactory) {
   return socketFactory({
     ioSocket: io.connect('http://l92.168.1.27:3000')
  });
 }])

2)您似乎有两个应用程序。 与其将angular.module()整个扔掉,不如在一个地方定义它:

var app = angular.module('starter', []);

然后,您可以在其他地方使用它,如下所示:

app
  .service('SocketService, [.... etc

请参阅1)第二部分中的内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM