2015-08-27 35 views
6

Cerco di creare un componente angular2 semplice e ho un errore durante il binding della direttiva a un elemento DOM nativo.Impossibile legare la direttiva angular2 sull'elemento nativo

Ad esempio:

/// <reference path="../../typings/_custom.d.ts" /> 

import { Component, View } from 'angular2/angular2'; 
import { RouterLink } from 'angular2/router'; 

@Component({ 
    selector: 'my-component', 
    directives: [RouterLink] 
}) 

@View({ 
    template: ` 
     <a [router-link]="['/page']">test</a> 
    ` 
}) 

export class MyComponent { } 

=> non può legarsi a 'routerLink' poiché non è una proprietà nota dell'elemento '<un>' e non ci sono direttive coincidenze con una corrispondente struttura .

Cosa ho fatto di sbagliato?

+1

Hey @tzi I 'direttive 'proprietà deve andare nell'annotazione' View'. –

+0

Grazie a @EricMartinez. -_- \/ – tzi

risposta

11
  • Come @EricMartinez ha detto, "direttive" è una "vista" proprietà
  • Come ha detto @dSebastien, "router-link" è diventato "routerLink"
  • Come ha detto @ pardeep-jain, "angular2/angular2" è diventato "angular2/core", "Visualizza annotazione" viene rimosso, non c'è bisogno della linea tipizzazioni

Ecco il codice giusto:

import { Component } from 'angular2/core'; 
import { RouterLink } from 'angular2/router'; 

@Component({ 
    selector: 'my-component', 
    directives: [RouterLink], 
    template: ` 
     <a [routerLink]="['/page']">test</a> 
    ` 
}) 

export class MyComponent { } 
+5

Si noti che con la versione beta, il router-link diventa routerLink (lo stesso per ngFor, ngIf, ...) – dSebastien

1

A partire da Angular2 è ora in beta, quindi ci sono molti cambiamenti qui che riguardano questa domanda può aiutare qualcuno.

  • import { Component, View } from 'angular2/angular2'

    cambiato in import {Component, View } from 'angular2/core' per la lista di tutte le importazioni in base alla versione beta vedi qui https://stackoverflow.com/a/34697758/5043867

(nella maggior parte dei casi non v'è alcuna necessità di utilizzare vista annotazione perché tutto il la funzionalità dell'annotazione della vista viene inclusa nell'annotazione del componente).

+2

L'annotazione '@View()' viene rimossa. –

Problemi correlati