【问题标题】:ng-checked='true' not workingng-checked='true' 不工作
【发布时间】:2017-09-20 19:32:18
【问题描述】:

模板 - 1

<ul>
  <li>
    <label><input type="radio" ng-checked="true" /> One</label>
  </li>
  <li>
    <label ng-click="ctrl.goToTwo()"><input type="radio" /> Two</label>
  </li>
<ul>

模板 - 2

<ul>
  <li>
    <label ng-click="ctrl.goToOne()"><input type="radio" /> One</label>
  </li>
  <li>
    <label><input type="radio" ng-checked="true" /> Two</label>
  </li>
<ul>

在上面的 html 中,我只是在单选按钮的帮助下将用户重定向到模板 1 到模板 2。

问题 我已经在两个模板中的单选按钮中明确提到了ng-checked=true。但我不知道为什么它们在加载时都未选中。

如果我遗漏了什么或者需要做其他事情,请告诉我。

注意:我尝试过使用ng-model='one'vm.type='one',但它不起作用。

【问题讨论】:

  • 请使用无线电标签的值。使用模型并在控制器中预先声明模型值。参考这个小提琴。 jsfiddle.net/BinaryMuse/ZQDts/3
  • @Sathish : 我已经试过了,但我不知道出了什么问题。
  • 创建一个 plunker 重现问题.. 虽然它看起来微不足道并且是由于一些小错误造成的。可能先检查一下
  • 我认为您的代码有问题,请分享您的完整源代码。

标签: angularjs html radio-button angularjs-ng-checked


【解决方案1】:

ng-checked 用于评估表达式

ngChecked

在元素上设置checked属性,如果里面的表达式 ngChecked 是真的。

因此使用ng-checked="true" 将搜索$scope.true 变量,这显然不是您要查找的。​​p>


如果您在输入中使用ng-model,则可以默认设置ng-model 值:

<div ng-init="ctrlNumber = 1">
    <input type="radio" ng-model="ctrlNumber" value="1"/>
    <input type="radio" ng-model="ctrlNumber" value=2"/>
</div>

当您提交表单时,检查ctrlNumber 值:如果2,则调用您的ctrl.goToTwo() 函数。

注意你也可以在你的控制器中设置这个值,不用ng-init

【讨论】:

    【解决方案2】:

    您必须在“无线电”输入中添加一个“值”

    <input type="radio" ng-model="myRadio" value="1" />
    

    稍后在您的代码中

    $scope.myRadio = "1" // check radio
    $scope.myRadio = "0" // radio not checked
    

    演示:

    https://codepen.io/anon/pen/QvKNOQ

    【讨论】:

    • @Era 我的代码示例运行良好,请提供您的代码演示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 2015-03-10
    • 2015-08-14
    • 2013-02-22
    相关资源
    最近更新 更多