2016-06-15 28 views
0

我正在尝试使用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

你不应该注入'bookProvider'和调用'bookProvider.setVersion( '4.0')? – Phil

+0

控制台中的错误应该为您提供了一些指导。 – Phil

回答

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。 `在`config`

https://docs.angularjs.org/api/auto/service/$provide#provider.provider()文档,具体...

NOTE: the provider will be available under name + 'Provider' key.

+0

我同意。我在这里有一个疑问,'app.config(函数(bookProvider)'连接到提供者书籍?(app.provider(“book”,function())''你能帮我理解吗? – 3gwebtrain

+1

@ 3gwebtrain see my编辑 – Phil

+0

引用你的plunker,在'$ .get:'中没有给出函数名称,我们在控制器中调用book? –

相关问题