如何使用`provider`并检索`controller`中的数据

时间:2016-06-15 06:03:55

标签: angularjs angular-providers

我正在尝试使用provider来设置并获取控制器中的值。但我不清楚如何在这里使用provider

任何人都可以帮助我使用providerconfig选项。我想知道providerconfig之间的关系。

这是我的尝试,它会抛出错误:

var app = angular.module('plunker', []);

app.value("person", {'name':"arif"});

app.constant("env", {url:"production"});

app.provider("book", function(){ //declaring provider
  var version;
  return {
    setVersion : function(value){
      version = value;
    },

    $get : function(school){
      return {
        "newVersion" : "title" + ':' + version
      }
    }
  }
});

app.config(function(newBook){ //setting a new value
    newBook.setVersion = "4.0";
});

app.controller('MainCtrl', function($scope, person, env, book) {
  $scope.name = env.url;
  $scope.value = person.name;
  $scope.version = book; //i am not getting the new value here.
});

Live Demo

1 个答案:

答案 0 :(得分:2)

正如我的评论中提到的那样......

app.config(function(bookProvider){
    bookProvider.setVersion("4.0");
});

我必须删除丢失的school注入以使其工作,但你应该得到图片。

已修复〜http://plnkr.co/edit/6Sb6rOSvA7ihvTLPTujY?p=preview

有关提供商配方的详细信息,请参阅https://docs.angularjs.org/guide/providers#provider-recipe

有关.provider()文档的详情,请参见https://docs.angularjs.org/api/auto/service/$provide#provider

  

注意:提供商将在name + 'Provider'密钥下提供。