2016-06-15 33 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? –

相關問題