2015-10-28 13 views
14

हाय। मैं कोणीय के लिए नया हूँ। मैं कोणीय 2.0 का परीक्षण कर रहा हूँ।कोणीय 2.0। अंतर @ दृश्य @ कॉम्पोनेंट

मैंने tuto here और मार्गदर्शिका here पढ़ा। ट्यूटो में, टेम्पलेट को @Component एनोटेशन में निर्दिष्ट किया गया है जबकि मार्गदर्शिका में यह @View एनोटेशन में है। तो मैं सोच रहा था कि दोनों दृष्टिकोणों के बीच अंतर क्या हैं? मैंने एपीआई पूर्वावलोकन में देखा लेकिन स्पष्टीकरण स्पष्ट नहीं थे।

+2

कोई वास्तविक अंतर नहीं है। ['@ व्यू सिर्फ वैकल्पिक है]] (https://github.com/angular/angular/pull/4566) –

+0

कृपया एक नज़र डालें [यहां] (http://stackoverflow.com/a/40215048/1592107) – Shivam

उत्तर

21

अद्यतन

@View() हटा दिया गया था (मैं beta.13 में लगता है, CHANGELOG.md यह उल्लेख नहीं करता है)।

मूल

उन दोनों के बीच कोई मतभेद नहीं हैं। यह सिर्फ चीनी है कि आप Component में सभी व्यू कॉन्फ़िगरेशन निर्दिष्ट कर सकते हैं, इसलिए View सजावट आयात करने की आवश्यकता नहीं है।

लेकिन साथ ही View सजावट मौजूद रहने की आवश्यकता है, क्योंकि यह हमें भाषा या मीडिया प्रकार के आधार पर एक ही घटक के लिए अलग-अलग विचारों का उपयोग करने की अनुमति देता है। उदाहरण के लिए:

@Component(/* ... */) 
@View({ 
    media: 'desktop', 
    template: 'Template for desktop' 
}) 
@View({ 
    media: 'mobile', 
    template: 'Template for mobile' 
}) 
extends class Component() {} 

यह सुविधा अभी तक लागू नहीं की गई है।

+1

यह https://github.com/angular/angular/pull/4566 में अपनी टिप्पणियों में इगोर के अनुसार भविष्य में सही नहीं हो सकता है "दृश्य स्विचिंग तर्क कहीं और परिभाषित किया जाएगा। संभवतः DI के माध्यम से हम देखेंगे।" – Chandermani

+0

क्या आपके पास उत्तर में वर्णित एक से अधिक घटक एक से अधिक दृश्य हैं? –

+0

@alexpods यह भी मेरे लिए 'मीडिया प्रकार' के लिए काम नहीं कर रहा है या मैं ठीक से समझ नहीं पा रहा हूं कि आपने क्या कहा। क्या आप मुझे उसी घटक में दो '@ व्यू' का उपयोग करके अपने कामकाजी कोड का डेमो (plnkr या fiddle) प्रदान करेंगे। –

3

जैसा कि उत्तर में @ एलेक्सपोड्स ने कहा था और @Eric ने टिप्पणी में कहा था कि जब कोणीय अल्फा @view में है, तो वैकल्पिक वैकल्पिक है क्योंकि @view एनोटेशन में सभी गुणों को @ कॉम्पोनेंट एनोटेशन में भी शामिल किया गया है, इसलिए @view सिर्फ चीनी है कि आप घटक में सभी व्यू कॉन्फ़िगरेशन निर्दिष्ट कर सकते हैं इसलिए व्यू सजावट आयात करने की कोई आवश्यकता नहीं है।

बीटा

@View नवीनतम रिलीज में पदावनत किया गया है पर अपडेट किया गया, तो आप इसका इस्तेमाल नहीं कर सकते।

यदि आप अभी भी @view एनोटेशन का उपयोग कर रहे हैं तो यह किसी प्रकार की त्रुटि उत्पन्न कर सकता है। इसलिए केवल घटक वह स्थान है जो सभी विकल्पों को पकड़ लेगा।

अधिकारियों के अनुसार, @ व्यू मेटाडाटा सजावट बीटा.10 रिलीज में बहिष्कृत कर दिया गया है।

2

कोणीय v2.0.0-beta.11 के चेंजलॉग के अनुसार, @View() एनोटेशन (पहले बहिष्कृत) को तोड़ने वाले परिवर्तनों के तहत इसका उल्लेख किया गया है। ऐप्स को इसके बजाय @Component() सजावट का उपयोग करना चाहिए।

कृपया Angular2 here.

के लॉग बदलें में एक नज़र
1

सबसे पहले, इस पदावनत किया गया था और अब पूरी तरह से चला गया है!

2.0.0-beta.10 (2016-03-17): @View() एनोटेशन (पहले बहिष्कृत) हटा दिया गया है। ऐप्स को इसके बजाए @ कॉम्पोनेंट() सजावट का उपयोग करना चाहिए।

तो आपको इसके बारे में चिंता करने की आवश्यकता नहीं है, @View पहले पेश किया गया था क्योंकि शुरुआती सोच यह थी कि एक घटक में कई दृश्य हो सकते हैं (उदाहरण के लिए मोबाइल दृश्य की तरह) और उपयोग के रूप में था नीचे:

import { Component } from '@angular/core'; 

    @Component({ 
     selector: 'app-root', 
     styleUrls: ['./app.component.scss']}) 
    @View({ 
     media: 'desktop', 
     template: '<h1>tablet<h1>' 
    }) 
    @View({ 
     media: 'mobile', 
     template: '<h1>mobile<h1>' 
    }) 

    extends class Component() {} 
संबंधित मुद्दे