2017-02-20 5 views
0

ユーザーがビューに入るとき。 Angularはサーバーにリクエストを送信し、レスポンスではプレフィックスと実際の名前で構成される名前です(例:PREFIX_NAME)。 私は2つの入力を持っています(プレフィックスと名前の2つ)。名前の入力にng-maxlength属性を設定したいとします。たとえば、25-prefix.lengthです。 、プレフィックス長をsubstracting後の値ではないデータをロードした後にng-maxlengthを入力します。

ng-maxlength="{{maxLength}}" 

が、それはまだ最初の値(25)を持っている:私はこのようにそれを設定しようとしました。

+0

[Dynamic ng-minlength/ng-maxlength]の複製(http://stackoverflow.com/questions/35138274/dynamic-ng-min長さ - ng - maxlength) –

+0

受け入れられた答えに働いているplnkrがあります –

答えて

0

TLDR:use ng-maxlength="maxLength"
ng-maxlengthは、補間された値ではなく、js式が必要です。コンソールを開くと、予期しないトークン '{'というエラーが表示されるはずです。一般に、ng-*を使用するときは二重括弧は必要ありません。

+0

私が補間なしでそれをするとき、私の入力は無効であり、未定義のモデルを持っています。 – DonLeo

+0

maxLengthを初期化しましたか?@DonLeo – Zen

+0

はい、あります。開始時に私は初期化を持っています:maxLength = 25; 私は応答を得るときに、新しいmaxLengthのプレフィックス長を減算するように設定しました。 – DonLeo

0

試してみてください。この

ng-maxlength="maxLength" 
+0

私のように無効で、未定義のモデルがあります。 – DonLeo

+0

あなたが話しているモデルでさらにコードを投稿してください –

0

あなたの入力は次のようになります。あなたのコントローラで

<input ... ng-maxlength="maxLength"/> 

は、デフォルトではmaxLengthを設定し、あなたのAPIからそれを回復するときにそれを変更:可能

$scope.maxLength = 25; 

$http({ method: 'GET', url: '/url' }).then(function(data) { 
    $scope.maxLength = 25 - data; 
}); 
関連する問題