Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-错误:[ng:areq]参数';fn';不是函数,获取字符串_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS-错误:[ng:areq]参数';fn';不是函数,获取字符串

Javascript AngularJS-错误:[ng:areq]参数';fn';不是函数,获取字符串,javascript,angularjs,Javascript,Angularjs,我得到一个错误: 错误:[ng:areq]参数“fn”不是函数,获取字符串 我阅读并应用其他人的建议。但我没有解决这个问题 这是我的密码: controller.js angular.module('starter.controllers', []) .controller('DashCtrl', function ($scope,$ionicScrollDelegate,SocketService) { var me = this; me.messages = [

我得到一个错误:

错误:[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);
   };
});
angular.module('starter.services', [])
   .service('SocketService', ['socketFactory'],
      function SocketService(socketFactory) {
        return socketFactory({
           ioSocket: io.connect('http://l92.168.1.27:3000')
        });
   });
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);
   };
});
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){

尽管是最后一行,我还是简单地将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部分第二部分中的操作)

请阅读。改进格式,改进错误视图他可能正在创建一个角度模块。。。因此,在这种情况下,
[]
需要持续存在……当有两个不同的js文件
controller.js
service.js
并且他正在这两个文件上创建角度模块时,你怎么能假设这样的事情呢???通常有一个
angular.module.js
,其中有人创建了
angular.module
,然后当他创建其他控制器或服务时,他必须做出一个参考,就像我在回答中给出的那样。而且,你可能不会通过假设来给出答案。。。起初我没有否决你的答案。。。其次,我只是添加了一条评论,明确提到“可能”。这只是对你答案的补充。开心点:)对不起。。我认为,这是正确的事情,你付出了,然后补充了你为什么这样做的原因。但是是的,我假设他是在其他文件中创建模块,而不是在这两个文件中