2015-06-07 4 views
8

में मैं नेटस्क्रिप्ट के लिए संपर्क सूची प्रकार पीओसी बनाने की कोशिश कर रहा हूं। और मैं सूची आइटम में एक छवि और नाम रखना चाहता हूं। कोड है कि मैं लेआउट के लिए उपयोग कर रहा हूँ के रूप मेंListView.itemTemplate और छवियां मूल स्क्रिप्ट

<Page loaded="pageLoaded"> 
    <ListView items="{{ myItems }}"> 
     <ListView.itemTemplate> 
      <Image src="{{ imageSrc }}" /> 
      <Label text="{{ title }}" /> 
     </ListView.itemTemplate> 
    </ListView> 
</Page> 

इस प्रकार जाहिर है, शीर्षक मूल्य ठीक आ रहा है है, लेकिन छवि बिल्कुल नहीं दिखा रहा है। जब मैं एक ही छवि कोड को खाली पृष्ठ में रखने का प्रयास करता हूं, तो मूल स्क्रिप्ट छवि के साथ पृष्ठ बनाता है।

क्या कोई मुझे बता सकता है कि सूचीदृश्य टेम्पलेट में छवि क्यों नहीं आ रही है? और यह कैसे प्रदर्शित किया जा सकता है?

धन्यवाद

+0

नमूदार डेटा संरचना (myItems) के साथ वस्तुओं की एक सरणी है ऑब्जेक्ट {imageSrc: "blah.png", शीर्षक: "blah blah blah blah"} – Nathanael

+0

क्या यह एक स्थानीय छवि या रिमोट एक (http) है? – antoine129

+0

हाँ @ नथनेल, यह उस वस्तु का एक सरणी है। – Shhhhh

उत्तर

15

मैंने इसका परीक्षण किया; आपको आंतरिक वस्तुओं को लेआउट में रखना होगा। मुझे विश्वास है कि आइटम टेम्पलेट केवल एक बच्चा हो सकता है। मेरे सभी परीक्षण इंगित करते हैं कि आइटम टेम्पलेट एक बच्चे को इंगित करता है।

तो यह ठीक काम करता है क्योंकि एकल बच्चा एक स्टैकलाउट है जिसमें आपके दो आइटम होते हैं।

एक्सएमएल:

<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="onPageLoaded"> 
     <ListView id="listview" items="{{ myItems }}"> 
      <ListView.itemTemplate> 
       <StackLayout orientation="horizontal"> 
       <Label text="{{ title }}" /> 
       <Image src="{{ src }}" stretch="none" /> 
       </StackLayout> 
      </ListView.itemTemplate> 
     </ListView> 
</Page> 

कोड पूरा होने के लिए सबसे सरल जे एस (भविष्य में इस पर देख किसी के लिए):

var observableArray = require("data/observable-array"); 
function onPageLoaded(args) { 
    var page = args.object; 
    var array = new observableArray.ObservableArray(); 

    array.push({title: "Title1", src: 'http://master-technology.com/images/Logo1.gif')}); 
    array.push({title: "Title2", src: 'http://master-technology.com/images/demos/Apps-TurnItOffLogo.gif')}); 

    page.bindingContext = {myItems: array}; 
} 
exports.onPageLoaded = onPageLoaded; 
+0

आपके समाधान पूरी तरह से काम किया। धन्यवाद!! मैं अभी भी ObservableArray() की आवश्यकता को समझ नहीं पा रहा हूं। – Shhhhh

+1

ऑब्जर्जेबलएरे के लिए एकमात्र उद्देश्य यह है कि आप परिवर्तनों को लाइव बना सकते हैं और यह अपडेट करेगा। यह अनुशंसा की जाती है जब आप कोई बाध्यकारी करते हैं जिसे आप पर्यवेक्षण का उपयोग करते हैं ताकि इसे दो तरह से बदला जा सके। लेकिन यदि आप चाहते हैं कि सूची अक्सर अपडेट नहीं की जा रही है तो आप केवल एक सादे सरणी का उपयोग कर सकते हैं। – Nathanael

+0

मैं देखता हूं। यह समझ आता है। – Shhhhh

संबंधित मुद्दे