2017-07-26 5 views
0

Wenn ich den "item.MaxLength" Wert aktualisiere, hat dies keinen Einfluss auf die Ausgabe und zeigt immer noch den ursprünglichen Wert als md-maxlength an. Was ist falsch an meinem Code? Vielen Dank.Aktualisiere md-maxlength Wert

Eingang-1: Ich erwarte, dass es md-maxlength Wert accoding "input-2"

<input type="text" ng-model="item.Desc" md-maxlength="{{item.MaxLength}}"> 

Eingang-2 ändern: Das mag ich steuern, um die Eingabe-1 md-maxlength mit „item .MaxLength "

<input type="number" ng-model="item.MaxLength"> 
+0

Was genau brauchen Sie? In md-maxlength sollten Sie einen Zahlenstring angeben, für den Sie ein maximales Zeichen für das Feld wünschen. Warum hast du denselben Variablennamen wie beim ng-Modell? – Shantanu

+0

ok. Ich habe meine Frage bearbeitet, um es klarzustellen. Ich hatte den schnellsten Weg geschrieben. Ich möchte md-maxlength von Eingang-1 steuern, indem ich Eingang-2 aktualisiere. –

Antwort

0

Offenbar gibt es kaum eine Möglichkeit, den md-maxlength-Wert dynamisch zu aktualisieren. Es gibt jedoch eine Problemumgehung für Ihr Problem. Sie können einfach das & Element löschen, nachdem Sie den Wert des Längeneinstellungsfelds geändert haben. Fügen Sie ng-if auf md-input-container & hinzu, ändern Sie den Wert entsprechend im Längenfeld, indem Sie $ watch oder ng-change function on length field verwenden.

<md-input-container ng-if="showN"> 
    <label>Name</label> 
    <input type="text" md-maxlength='{{view.len}}' ng-model="view.name" /> 
</md-input-container> 
<md-input-container> 
    <label>Len</label> 
    <input type="number" ng-model="view.len" /> 
</md-input-container> 

Und Controller haben:

$scope.$watch('view.len', function(n,o){ 
    $scope.showN = false; 
    $timeout(function(){ 
     $scope.showN = true; 
    }); 
}); 

Arbeiten Plunker: https://plnkr.co/edit/fLh0VfuTUjjmGo8PRioy?p=preview

Verwandte Themen