web-dev-qa-db-ja.com

AngularJS:ng-placeholderが機能しない

ユーザーモデルに保持されているものに応じてプレースホルダーを変更したい次の入力html要素があります。

<input type="text" class="form-control" id="Username" name="Username" data-ng-model="user.Username" required="" ng-placeholder="{{user.AdAccount ? 'Username' : 'Ad Login'}}">

角度の以前のバージョンで機能したと言われているこの方法を試しましたが、成功しませんでした。

ng-placeholder="user.AdAccount == true && 'Username' || 'AD Login'" 

現時点では、私のプレースホルダーは完全に空白になっています。また、AdAccountはng-showでフォームの他の場所で使用されているため、true/falseを正しく保持していることも知っています。

16
user3407039

NgPlaceholderディレクティブはないと思います。コードを次のように変更してみてください。

<input type="text" class="form-control" id="Username" name="Username" data-ng-model="user.Username" required="" placeholder="{{user.AdAccount ? 'Username' : 'Ad Login'}}" />

つまり、ng-placeholderinto placeholderに変更すると、すべて正常に動作するはずです。

(有効なXHTMLに準拠する必要がある場合は、自己終了スラッシュにも注意してください。)

43
Oskar Lindberg

これを試すことができます:

<input type="text" class="form-control" id="Username" name="Username" data-ng-model="user.Username" required="" ng-attr-placeholder="{{user.AdAccount ? 'Username' : 'Ad Login'}}">

ng-attr-は、任意のHTML属性で機能します。

12
Hussain

HTMLの場合:

<input type="text" placeholder="{{doctorname ? doctorname : 'Dr. your name'}}"
       class="editable-class" ng-model="doctor.name" readonly/>

コントローラー内:

$scope.doctorname = $scope.doctorinfo.name;
1
Abhishek Saxena