2016-11-07 4 views
0

Ich versuche, eine Zeichenfolge durch das HTML einer eckigen 1.5-Komponente zu binden. Ich erhalte eine Fehlermeldung, die besagt:Fehler Binden von Zeichenfolgen mit Angular 1.5-Komponenten

Error: [$compile:nonassign] Expression ''My Title'' in attribute 'title' used with directive 'selectList' is non-assignable! 

Dies ist der html, wo ich die Komponente nenne:

index.html

<select-list title="'My Title'"></select-list> 

und die Komponente:

export var selectListComponent = { 
    bindings: { 
     title: "=" 
    }, 
    templateUrl: 'path/selectList.html', 
    controller: selectListController 
}; 

und die Komponente html:

<div>{{$ctrl.title}}</div> 

Antwort

1

Sie verwenden eine Zweiwege-Bindung und stellen eine konstante Zeichenfolge als Bindungsziel bereit.

Sie benötigen würde Ihre Komponente ändern zu verwenden:

export var selectListComponent = { 
    bindings: { 
     title: "@" 
    }, 
    templateUrl: 'path/selectList.html', 
    controller: selectListController 
}; 

Der @ den Wert auswerten (eine Zeichenfolge in diesem Fall) geleitet wird, und dann ein Weg, um die Richtlinie Umfang verbindlich durchzuführen.

+0

Danke Simon, zuerst habe ich es mit '<' für die einseitige Bindung versucht, aber ich denke, das ist nicht für primitive Datentypen? als Antwort markiert, war genau das, was falsch war – Shawn

+1

Das ist richtig, '<' ist für Objekte. –

Verwandte Themen