2017-07-26 7 views
0

"item.MaxLength"値を更新すると、出力には影響せず、元の値はmd-maxlengthとして表示されます。私のコードで何が間違っていますか?ありがとう。md-maxlength値の更新

入力-1:私はそれが "入力2" にaccoding MD-MAXLENGTH値を変更することを期待

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

入力-2:私はアイテム」と入力-1 MD-MAXLENGTHを制御したいこと.MaxLength "

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

あなたは正確に何が必要ですか? md-maxlengthでは、フィールドの最大文字数を指定する数値の文字列を指定する必要があります。なぜあなたはng-modelと同じ変数名を持っていますか? – Shantanu

+0

ok。私はそれを明確にするために私の質問を編集しました。私は最速の方法を書いていた。私はinput-2を更新してinput-1のmd-maxlengthを制御したい。 –

答えて

0

明らかに、md-maxlength値を動的に更新する方法はほとんどありません。しかし、あなたの問題の回避策があります。 &を削除するだけで、長さ設定フィールドの値を変更した後に入力要素を再描画することができます。 ng-ifmd-input-container &に追加すると、長さフィールドの値に応じて、$ watchを使用するか長さフィールドのng-change関数を使用して値を変更します。

<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> 

とコントローラでは、持っている:

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

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