2015-07-16 26 views
14

प्रस्तुत नहीं किया गया है मुझे अंगुलरजेएस में अनुभव है और मैं कोणीय 2 सीखना शुरू कर रहा हूं। मैं अपनी सीखने की यात्रा की शुरुआत में हूं, लेकिन मैं पहले से ही अटक गया हूं।कोणीय 2 घटक

मैं अपने घटकों में से एक को प्रस्तुत करने के लिए प्राप्त कर सकता हूं, लेकिन दूसरा नहीं। मैं विजुअल स्टूडियो 2013 अल्टीमेट और टाइपस्क्रिप्ट 1.5 बीटा का उपयोग कर रहा हूं। यहाँ स्रोत है:

index.html

<html> 
    <head> 
     <title>Angular 2 Quickstart</title> 
     <script src="https://github.jspm.io/jmcriffey/[email protected]/traceur-runtime.js"></script> 
     <script src="https://jspm.io/system.js"></script> 
     <script src="https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js"></script> 
    </head> 
    <body> 

     <!-- The app component created in app.ts --> 
     <my-app></my-app> 
     <display></display> 
     <script> 
      System.import('app'); 
      System.import('displ'); 
     </script> 
    </body> 
</html> 

app.ts

/// <reference path="d:/npm/typings/angular2/angular2.d.ts" /> 

import { Component, View, bootstrap} from 'angular2/angular2'; 

// Annotation section 
@Component({ 
    selector: 'my-app', 
}) 

@View({ 
    template: '<h1>Hello {{ name }}</h1>', 
}) 

// Component controller 
export class MyAppComponent { 
    name: string; 

    constructor() { 
     this.name = 'Alice'; 
    } 
} 

bootstrap(MyAppComponent); 

displ.ts

/// <reference path="d:/npm/typings/angular2/angular2.d.ts" /> 

import { Component, View, bootstrap} from 'angular2/angular2'; 

// Annotation section 
@Component({ 
    selector: 'display' 
}) 

@View({ 
    template: '<h1>xxxHello {{ name }}</h1>', 
}) 

// Component controller 
export class DisplayComponent { 
    name: string; 

    constructor() { 
     this.name = 'Bob'; 
    } 
} 

गु ई परिणाम बस है:

हैलो ऐलिस

कहाँ बॉब चली गई?

धन्यवाद!

अद्यतन

मुझे लगता है कि मैं इसे गलत तरीके से करने के लिए कोशिश कर रहा था। मेरा इरादा display घटक my-app घटक के अंदर नेस्टेड के लिए था, लेकिन my-app के टेम्पलेट आवश्यक सामग्री शामिल नहीं किया था:

  1. यह एक <display></display> तत्व शामिल नहीं किया। इसकी बजाय शीर्ष स्तर index.html में शामिल किया गया था जो इसके लिए गलत जगह थी।
  2. व्यू एनोटेशन में डिस्प्ले घटक को निर्देश संदर्भ के रूप में शामिल नहीं किया गया था।

संक्षेप में, मैं क्या पड़ा है चाहिए था:

app.ts (देखें एनोटेशन)

@View({ 
    template: '<h1>Hello {{ name }}</h1><display></display>', 
    directives: [DisplayComponent] 
}) 

और यह भी मैं app.ts में अपने प्रदर्शन घटक आयात करने के लिए किया था:

import { DisplayComponent } from 'displ'; 
+2

'बूटस्ट्रैप (डिस्प्ले कॉम्पोनेंट);'? – nada

+0

@nada प्रत्येक घटक को बूटस्ट्रैप करना आवश्यक है? –

+2

आमतौर पर हमें रूट घटक को बूटस्ट्रैप करने की आवश्यकता होती है, और हम इसके अंदर अन्य घटकों को निर्देश के रूप में शामिल करते हैं। यह हमें केवल रूट को बूटस्ट्रैप करना है। यदि आप दो घटकों को अलग-अलग बूटस्ट्रैप करते हैं तो वे दो अलग कोणीय 2 अनुप्रयोग –

उत्तर

13

कृपया boostrap(DisplayComponent);nada के रूप में जोड़ें पहले से ही बताता है।

quickstart से:

बूटस्ट्रैप() फ़ंक्शन एक पैरामीटर, घटक को सक्षम करने (और साथ ही किसी भी बच्चे घटकों यह होता है) रेंडर करने के लिए के रूप में एक घटक लेता है।

तो हाँ, आपको सभी घटकों के लिए boostrap पर कॉल करने की आवश्यकता है जब तक कि वे किसी अन्य घटक के बच्चे न हों।

+2

ठीक होंगे क्योंकि मैं इसके साथ इतना नया हूं, मुझे अभी एहसास हुआ कि मुझे अपना दूसरा घटक पहले निर्देश में शामिल करना था ... –

+0

क्या कोई तरीका है एक घटक में निर्देशों का उपयोग करके अन्य घटक हो सकते हैं? –

+2

@AviadP .: यदि आप एक घटक को किसी अन्य घटक का बच्चा बनाना चाहते हैं। मुझे लगता है कि निर्देश का उपयोग कर आपके पास जिस तरह से है, वह एकमात्र तरीका है जिसे मैं जानता हूं। –

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