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

时间:2017-02-15 12:55:29

标签: javascript angularjs

我收到错误:

  

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

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

这是我的代码:

controller.js

Element.innerHtml="";

services.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);
   };
});

2 个答案:

答案 0 :(得分:0)

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

所以改变这个:angular.module('starter.controllers', []) 对此:angular.module('starter.controllers')

答案 1 :(得分:0)

有两件事突然袭来;

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)第二部分的实际操作