Dopo aver letto e utilizzato la risposta di Sander Elias, stavo usando questo, ma ho incontrato un altro problema.
Quando si combina il suo risultato con ng-required="true"
nel <input>
non si poteva svuotare il campo, perché quando il campo sarebbe vuoto, il newVal
viene passato come undefined
.
Dopo ulteriori ricerche, ho trovato an isssue on GitHub che risolve e risolve questo problema.
Ecco cosa Sander e l'aspetto GitHub risposta combinata come:
$scope.propertify = function (string) {
var property = $parse(string);
var propAssign = property.assign;
return function (newVal) {
if (arguments.length) {
newVal = angular.isDefined(newVal)? newVal : '';
propAssign($scope, newVal);
}
return property($scope);
};
};
Il argument.length
riflette il numero di valori che vengono passati al getter/setter e sarà 0
su un get e 1
su un set .
Besided che, ho aggiunto la angular.isDefined()
come Sumit suggested in a comment per salvare anche (""
) valori false
e vuoti.
Ecco un updated Plunker
fonte
2017-03-02 17:44:31
Sander, sei un angoloso-ninja per davvero, grazie mille! =) –
Sto ancora ottenendo l'errore "non assegnabile" con questo ... ma il tuo plunkr funziona perfettamente – ProblemsOfSumit
Ho avuto la versione angolare sbagliata - funziona tutto alla grande, grazie! – ProblemsOfSumit