【问题标题】:AngularJS: ng-placeholder not workingAngularJS:ng-placeholder 不工作
【发布时间】:2015-08-14 22:36:43
【问题描述】:

我有以下输入 html 元素,我想根据用户模型中的内容更改占位符。

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

我什至尝试过这种方法,据说在以前版本的 angular 中有效,但没有成功。

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

目前我的占位符只是完全空白。我也知道 AdAccount 正确地持有真/假,因为它正在通过 ng-show 在表单的其他地方使用。

【问题讨论】:

  • 你使用的是哪个版本的 Angular
  • 您是否尝试过您现在使用的不带 {{}} 的线路?
  • 嗨,我使用的是 1.3.15,根据我在这里其他地方看到的答案判断应该没问题?是的@Guinn,我在没有花括号的情况下尝试过它,它没有任何区别。

标签: html angularjs placeholder


【解决方案1】:

我认为没有任何 ngPlaceholder 指令。尝试将您的代码更改为:

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

也就是说,将ng-placeholder更改为placeholder,一切都会正常。

(如果您需要符合有效的 XHTML,还要注意自动关闭的斜线。)

【讨论】:

  • 我实际上并不知道这些条件语句可以在 ng- 指令之外工作。谢谢!
  • {{ ... }} 使角度评估花括号内的任何给定表达式 - 尝试 {{ 2 + 2 }} 或其他什么,你会看到。如果确实使用指令,则不需要花括号。
  • 是的,现在你这么说似乎很明显-_-
  • 请注意,这种方法可能不适用于 Internet Explorer。 参见。 docs.angularjs.org/guide/ie 你可能想改用ng-attr-placeholder
【解决方案2】:

你可以试试这个:

<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 属性。

【讨论】:

    【解决方案3】:

    在 HTML 中:

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

    在控制器中:

    $scope.doctorname = $scope.doctorinfo.name;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-12
      • 2014-11-24
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 2021-04-07
      相关资源
      最近更新 更多