Это должно быть относительно простым с использованием геттера и сеттера, хотя я не уверен, как правильно настроить приемник и сеттер.
Функциональность такова:
Обслуживание:
app.factory('chatbox',['$http',function($http){
var total_chats = 0;
var registeredChats = [];
var registerChat = function(userid) {
//Places Chat into variable
};
var getChat = function(userid) {
//Gets Chat for the Controller
};
var killChat = function(userid) {
//Gets Chat from Variable
};
}]);
Я хотел бы иметь возможность хранить данные в этой службе от любого контроллера, содержащего эту службу?
Попробуй это:
app.factory('chatbox',['$http',function($http){
var total_chats = 0;
var registeredChats = [];
var registerChat = function(userid) {
//Places Chat into variable
registerChat.push(userId);
total_chats = total_chats + 1;
};
var getChat = function(userid) {
//Gets Chat for the Controller
return registered_chats;
};
var killChat = function(userid) {
//Gets Chat from Variable
... you get the idea
};
var toReturn = {
getChat: getChat,
registerChat: registerChat,
killChat: killChat
};
return toReturn
}]);
Вот как я это сделаю:
app.service('chatbox',['$http',function($http){
var service = {
getChats : getChats,
setChats : setChats
};
return service;
var total_chats = 0;
var registeredChats = [];
function getChats(){
//Insert logic here
}
function setChats(){
// Insert logic here
}
}]);
Вам нужно, чтобы ваши функции определялись как члены службы. Таким образом, не var
а this.
this.registerChat = function(userid) {
//Places Chat into variable
};
this.getChat = function(userid) {
//Gets Chat for the Controller
};
this.killChat = function(userid) {
//Gets Chat from Variable
};
Затем вы сможете использовать chatbox
в контроллере
angular.controller('Controller1', function($scope, chatbox){
$scope.kill = function(userId, chat){
chatbox.killChat(userId, chat);
}
})