2016-10-13 3 views
1

у меня есть угловое приложение, и я хочу, чтобы сохранить некоторые значения между контроллерами с использованием угловых службУгловое обслуживание и инъекционное значение

Вот мой базовый контроллер:

(function() { 
    var app = angular.module("MyApp", ["ui.router"]); 

    app.controller("BaseCtrl", ["$scope", "$http", "$state", BaseControllerFunc]); 

    function BaseControllerFunc($scope, $http, $state) { 
    .... 

    } 



})(); 

Теперь я хочу, чтобы добавить услугу Затем я могу заполнить данные пары «ключ-значение». Таким образом, я попытался добавить следующее:

app.service("DataService", function() { 
    var data_item = {}; 
    data_item.Key =MyKey; 
    data_item.Value=MyValue; 
    this.MyData.push(data_item); 

}); 

и теперь он выглядит следующим образом:

(function() { 
    var app = angular.module("MyApp", ["ui.router"]); 

    app.controller("BaseCtrl", ["$scope", "$http", "$state", BaseControllerFunc]); 

    function BaseControllerFunc($scope, $http, $state) { 
    .... 

    } 

    app.service("DataService", function() { 
     var data_item = {}; 
     data_item.Key =MyKey; 
     data_item.Value=MyValue; 
     this.MyData.push(data_item); 

    }); 


})(); 

Здесь я застрял. Как мне пойти на ввод значений (MyKey и MyValue) в мою службу? Я новичок с Угловое, так что делает его трудно

ответ

0

Попробуйте добавить функции для обработки данных.

app.service("DataService", function() { 
    var myData = []; 

    function addItem(key, value){ 
     var data_item = {Key: key, Value: value); 
     myData.push(data_item); 
    } 

    function getData(){ 
     return myData; 
    } 

    return { 
     add: addItem, 
     get: getData 
    } 

}); 

В контроллере, используйте его как

DataService.add('key', 'value'); 
DataService.get(); 
0

изменить его

app.service("DataService", function() { 
var data_item = {}; 
return{ 
    function somename(MyKey,MyValue){ 

    data_item.Key =MyKey; 
    data_item.Value=MyValue; 
    this.MyData.push(data_item); 
    } 
    } 
}); 

и от контроллера называют его

DataDervice.somename(MyKey,MyValue) 
+0

Где я поставил этот код? Я попробовал добавить код в том же месте, где добавил свой код выше, и он подчеркивает имя функции возврата 'somename' – ElenaDBA