![](/img/trans.png)
[英]angularjs [ng:areq] Argument 'fn' is not a function, got string in console error
[英]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.