0

У меня есть фабрика, которая использует angular-websocket для подключения к серверу, и мне нужно передать информацию с моего контроллера на нее, чтобы она отправила эту информацию, и я хочу передать ее как массив. завод как таковой:Pass Array from Controller to Factory error

.factory('registerService', function($websocket) { 
    var dataStream = $websocket('ws://localhost:3000'); //websocket 
    dataStream.onOpen(function() { 
    console.log('in'); 
    this.sendId = function(data) { 
    console.log('data: '+data); 
    }; 
    }) 
    dataStream.send(function(message) { 
    //send info to backend 
    }); 
}) 

И контроллер как таковой:

.controller("registerController", function($scope,$stateParams,$ionicPopup,$state,registerService) { 
    $scope.registerService = registerService; 
    $scope.signUp = function() { 
     registerBox = []; 
     registerBox.push('Register') 
     registerService.sendId(registerBox); 
    }; 
}) 

Однако я получаю сообщение об ошибке: registerService.sendId не является функцией. Какая у вас просьба?

+1

У вас нет «возврата» в ваш сервис. –

ответ

0
 .factory('registerService', function($websocket) { 
      var dataStream = $websocket('ws://localhost:3000'), 
       _this = this; 

      dataStream.onOpen(function() { 
      console.log('in'); 
      _this.sendId = function(data) { 
       console.log('data: '+data); 
      }; 
      }) 
      dataStream.send(function(message) { 
      //send info to backend 
      }); 

     return _this; 
    });