Ich habe ein Problem mit Anuglar. ng-bind
aktualisiert Textarea nicht, wenn der Wert durch Benutzereingaben geändert wurde.Angular - Kann Update Textarea nach Benutzereingabe
Hinweis: Der Grund, dass ich ng-bind anstelle von ng-Modell verwende, ist, dass ich ng-bind-html
brauche, da die Eingabe in HTML mit ngSanitize
somatisiert ist.
Demo: http://jsfiddle.net/Lvc0u55v/11682/
Hier ist, wie zu sehen, was im Gespräch über: Wählen Sie anyvalue von Drop-Down-und Textbereich aktualisiert wird. Wählen Sie aber New Value
und fügen Sie Text in das Textfeld ein. Dann ändern Sie die Auswahlbox auf einen beliebigen Wert und textarea ändert sich nie wieder!
Code:
[SCRIPT]
$scope.msg_templates = []; //array of {id, title, msg} filled with required stuff
$scope.msg_templates[0] = {id:'0', title:'{New Value}', msg:''}; //first item is to enter new value
$scope.msg_templates[1] = {id:'1', title:'TTT', msg:'TTT'};
$scope.msg_templates[2] = {id:'2', title:'XXX', msg:'XXX'};
.
.
//set default value
$scope.msg_sel = '';
$scope.msg_field = '';
//change msg function
$scope.change_msg_sel = function()
{
if($scope.msg_sel==null){
$scope.msg_field = '';
return false;
}
$scope.msg_field = $scope.msg_sel.msg;
};
[HTML]
<select ng-model="msg_sel" ng-change="change_msg_sel()" ng-options="v.title for v in msg_templates">
<option value="">Please Select -</option>
</select>
<textarea ng-bind-html="msg_field"></textarea>
ist 'v.title für v in msg_templates' vorsätzlichen oder es ist wohl' comm_templates' zu verwenden? Und Sie sollten '
dessen eigentliche 'msg_templates' verwenden, vergessen, sie hier für dieses Beispiel umzubenennen. –
Funktioniert gut für mich [jsfiddle] (http://jsfiddle.net/0yoxpd11/1/). Der einzige Unterschied in meiner Geige ist, dass ich die 'ngApp' aus der Umhüllung von'
'entferne, weil du keine' ng-App 'innerhalb einer anderen haben kannst. Sie sind sich bewusst, dass '$ scope.msg_templates [0]' '' 'msg' 'leer ist. Wenn ausgewählt, wird nichts angezeigt. – user2718281