2017-02-15 64 views
0

我得到一个错误:AngularJS - 错误:[NG:AREQ]参数 'FN' 不是一个函数,得到了串

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

我阅读和应用其他建议。但是我没有解决这个问题。

这是我的代码:

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') 
     }); 
    }); 
+0

请阅读[问]。 – evolutionxbox

+0

改进了格式,改进了错误视图 –

回答

0

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

所以更改此设置:angular.module('starter.controllers', []) 要这样:angular.module('starter.controllers')

+0

他可能正在创建一个Angular模块......所以在这种情况下'']'需要坚持... –

+0

如何让两个不同的js文件' controller.js'和'service.js',他在两个方面创建角度模块?通常有一个'angular.module.js',其中有人创建'angular.module',然后当他创建其他控制器或服务时,他必须提供一个参考,就像我在我的答案中提供的那样。你也可能不会通过假设来回答问题。 – Korte

+0

简单的人...起初我没有降低你的答案...其次,我只是添加了一条评论,明确提及'可能'。这只是你答案的补充。快乐:) –

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第二部分行动)

相关问题