Ich versuche AngularJS 1.5-Komponenten zu verwenden, aber jedes Mal erkläre ich bindings
ich erhalte immer diese Fehlermeldung:Angular 1.5 Komponente Expression ‚undefined‘ in Attribut
Expression 'undefined' in attribute 'message' used with directive 'homeComp' is non-assignable!
Ich bin eine einfache Komponente versucht, nur um zu lernen es ist dies der Code:
var component = {
bindings: {
message: '='
},
controllerAs: 'vm',
controller: function MainController() {
this.message = 'Welcome to my component';
function debug() {
this.message = 'This message changed';
}
this.debug = debug;
},
template: [
'Message: {{ vm.message }}<br />',
'<button ng-click="vm.debug()">Change message</button>'
].join(``)
};
Sie hier, um den Fehler zu sehen: http://plnkr.co/edit/uutk5kxOVpa5eLfjoa8U?p=preview
Was mit dem Code falsch? Oder was verursacht diesen Fehler? Wenn ich die Bindungen entferne, erscheint der Fehler nicht und ich kann die Nachricht ändern.
Ich benutze die Bindings, da ich je nach Anwendungsfall sowohl Einweg-Daten als auch Zwei-Wege-Daten haben kann. Da ich anfange, Komponenten zu verwenden, habe ich beide versucht, aber hatte diesen Fehler bei der Verwendung wie im obigen Beispiel. Also, wenn ich eine One-Way-Datenbindung habe, wie soll ich tun? – celsomtrindade
haben Sie speziell versucht, "message" als optional zu definieren, da ich die Arbeit in der Plunkr für die 2. Position zeige? – Claies
Ja, es funktionierte für eine 2-Wege-Datenbindung, aber wenn ich zu '<' ändere, funktioniert es nicht mehr. – celsomtrindade