2013-04-15 10 views
12

मैं angularjs के लिए नया हूँ। मैं यह पता लगाने की कोशिश कर रहा हूं कि एक मूल्य के रूप में मूल्य बनाम कारखाने का उपयोग कब करें।कोणीय मूल्य बनाम फैक्टरी

.value('Data', function(){ 
    return {message:"I am data from a service"}; 
    }) 

Data.message एक इनपुट फ़ील्ड के लिए बाध्य है: यहाँ egghead.io ट्यूटोरियल से मेरी सरल कोड है। जब मैं पृष्ठ शुरू करता हूं, इनपुट फ़ील्ड में कुछ भी नहीं है। यदि मैं फ़ैक्टरी में मान बदलता हूं, तो इनपुट फ़ील्ड में डिफ़ॉल्ट संदेश दिखाई देता है।

controller('FirstCtrl', ['$scope','Data',function($scope, Data) { 
    $scope.data = Data; 
    console.log('exiting first controller'); 
    }]) 

और इंडेक्स फ़ाइल:

<div ng-controller="FirstCtrl"> 
    <input type="text" ng-model="data.message"> 
    <h1>{{data.message}}</h1> 
</div> 

क्यों पेज खाली जब मूल्य उपयोग कर रहा है

यहाँ contoller है? मेरी धारणा यह है कि जब ऐप शुरू होता है तो मूल्य की गणना या गणना नहीं की जाती है जबकि कारखाना होता है?

इसके अलावा, मुझे $ प्रदान करने पर कुछ दस्तावेज कहां मिल सकता है? आप सभी को धन्यवाद।

+3

थोड़ा सा असंबंधित बिट यह मेरे एक ऐसी ही स्थिति में मदद की में की तरह अपने पेज में इसका इस्तेमाल करते हैं। कारखाने बनाम सेवा बनाम https://gist.github.com/Mithrandir0x/3639232 प्रदान करते हैं। बेहतर उत्तर पाने की संभावनाओं को बढ़ाने के लिए यह सहायक होगा यदि आप जेएसफ़िल्ड या इसी तरह की सेवा के माध्यम से एक उदाहरण प्रदान कर सकते हैं। – TheHippo

+0

उपयोगी लिंक के लिए धन्यवाद। –

उत्तर

19

एक वस्तु के लिए मूल्य निर्धारित करें, बल्कि एक समारोह से:

app.value('Data', {message:"I am data from a service"}); 

Plunker

भी देखें provide.value(), और इस video about $provide (मूल्य, निरंतर, सेवा, कारखाने, डेकोरेटर, प्रदाता)

+0

वीडियो के लिए बहुत बहुत धन्यवाद। बहुत स्पष्ट किया गया। –

-1

आपको नियंत्रक को

app.controller('DataController', ['Data', function DataController(Data){ 
     this.data = Data; 
    }]); 
के रूप में घोषित करना चाहिए

और फिर मेरी कोड

<div ng-controller='DataController as dataController'> 
     {{dataController.data()}} 
    </div> 
संबंधित मुद्दे