Desidero utilizzare l'attributo ng-model in un elemento personalizzato. Il problema è, che ho bisogno di impostare il modello ng con un'espressione:Angolare utilizzando ng-model con espressione nel modello di direttiva
ng-model="{{anyVariable}}"
Il problema è che ottengo sempre un errore non appena aggiungo l'espressione all'attributo ng-model nel mio modello:
Error: Syntax Error: Token 'x.name' is unexpected, expecting [:] at column 3 of the expression [{{x.name}}] starting at [x.name}}].
at Error (<anonymous>)
at throwError (http://localhost:9000/public/javascripts/angular.js:5999:11)
at consume (http://localhost:9000/public/javascripts/angular.js:6037:7)
at object (http://localhost:9000/public/javascripts/angular.js:6327:9)
at primary (http://localhost:9000/public/javascripts/angular.js:6211:17)
at unary (http://localhost:9000/public/javascripts/angular.js:6198:14)
at multiplicative (http://localhost:9000/public/javascripts/angular.js:6181:16)
at additive (http://localhost:9000/public/javascripts/angular.js:6172:16)
at relational (http://localhost:9000/public/javascripts/angular.js:6163:16)
at equality (http://localhost:9000/public/javascripts/angular.js:6154:16)
il codice utilizzato:
function addFormFieldDirective(elementName, template) {
app.directive(elementName, function() {
return {
restrict: "E",
scope: {},
replace: true,
// adds some extra layout
template: buildFormTemplate(template),
link: function(scope, elm, attrs) {
scope.x = attrs;
}
};
});
}
addFormFieldDirective("textfield", '<input id="{{x.id}}" ng-model="{{x.name}}" type="text" name="{{x.name}}" value="{{x.value}}" />');
Ecco un'altra versione che utilizza 'ng-repeat' e solo l'attributo richiesto in html è per il passaggio nell'oggetto per l'elemento dal controller principale http://plnkr.co/edit/kcxFA7lrnlMoScrHYlAC?p=preview – charlietfl