#angularjs #angularjs-service #angularjs-controller #angularjs-factory
#angularjs #angularjs-сервис #angularjs-контроллер #angularjs-завод
Вопрос:
У меня есть завод, который используется angular-websocket
для подключения к серверной части, и мне нужно передать ему информацию с моего контроллера, чтобы он отправил эту информацию, и я хочу передать ее в виде массива. Фабрика как таковая:
.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. Вы не
return
редактировали свой сервис.
Ответ №1:
.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;
});