角度服务和注入值

时间:2016-10-13 18:30:01

标签: angularjs

我有一个角度应用程序,我想在使用角度服务的控制器之间保留一些值

这是我的基本控制器:

(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)注入我的服务?我是Angular的新手,所以这很难实现

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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();