当前位置: 首页 > 面试题库 >

AngularJS-将单选按钮绑定到具有布尔值的模型

孔宇
2023-03-14
问题内容

我在将单选按钮绑定到其属性具有布尔值的对象时遇到问题。我正在尝试显示从$ resource获取的考试题。

HTML:

<label data-ng-repeat="choice in question.choices">
  <input type="radio" name="response" data-ng-model="choice.isUserAnswer" value="true" />
  {{choice.text}}
</label>

JS:

$scope.question = {
    questionText: "This is a test question.",
    choices: [{
            id: 1,
            text: "Choice 1",
            isUserAnswer: false
        }, {
            id: 2,
            text: "Choice 2",
            isUserAnswer: true
        }, {
            id: 3,
            text: "Choice 3",
            isUserAnswer: false
        }]
};

对于此示例对象,“ isUserAnswer:true”属性不会导致选中单选按钮。如果我将布尔值封装在引号中,则可以使用。

JS:

$scope.question = {
    questionText: "This is a test question.",
    choices: [{
            id: 1,
            text: "Choice 1",
            isUserAnswer: "false"
        }, {
            id: 2,
            text: "Choice 2",
            isUserAnswer: "true"
        }, {
            id: 3,
            text: "Choice 3",
            isUserAnswer: "false"
        }]
};

不幸的是,我的REST服务将该属性视为布尔值,并且很难更改JSON序列化以将这些值封装在引号中。还有另一种方法可以设置模型绑定而不更改模型的结构吗?

这是显示非工作对象和工作对象的jsFiddle


问题答案:

Angularjs中正确的方法是对ng-value模型的非字符串值使用。

像这样修改您的代码:

<label data-ng-repeat="choice in question.choices">
  <input type="radio" name="response" data-ng-model="choice.isUserAnswer" data-ng-value="true" />
  {{choice.text}}
</label>

参考:从马口直行



 类似资料:
  • 问题内容: 我知道在某些Google线程中已经提到了这一点,但是我仍然找不到将无线电输入绑定到模型的正确解决方案(以简洁的方式), 目前,我有HTML: 在控制器中: 这不起作用(与复选框相同)… 关于如何在不丢失数据绑定的情况下在第一个单选按钮上设置默认值的任何想法? 谢谢! 问题答案: 我认为您应该在这两个单选按钮中使用具有不同值的相同变量。 然后,您应该根据用户输入设置“ Rma”或“ De

  • 问题内容: 这似乎应该很容易,但是我没有找到答案。我有一个表格,需要在此表格中确认是否从广播组中进行了选择。我尝试在单选按钮上使用’required’属性,但是在验证表单后,除非所有单选按钮都被选中(设计上是不可能的),否则它将抱怨。 在AngularJS中验证无线电组选择的正确方法是什么? 单击Plnkr中的“提交”按钮将显示该行为。 http://plnkr.co/edit/3qcIbMvJk

  • 我有一个如上所述的下拉列表,并希望将所选值绑定到模型的字段(类型为) 但是,无论我选择哪个项目,字段始终为空!它甚至不是可空类型

  • 我是Angular的新手,我正在尝试获取用户使用ng模型选择的单选按钮的值。但我在“选定联系人”中没有得到任何输出。 这是我的HTML 以下是我的主要内容.js 我在这里做错了什么?搞不清楚!!!

  • 问题内容: 我想将ckeditor文本绑定到ng-model文本 我的看法 控制者 我想在表单提交时在$ scope.text中设置ckeditor值 提前 问题答案: CKEditor在键入时不会更新文本区域,因此您需要注意这一点。 这是一条使ng-model绑定与CK配合使​​用的指令: 在html中,只需使用: 先前的代码将在每次更改时更新ng-model。 如果只想在保存时更新绑定,请覆盖

  • 问题内容: 我有一个模型在storeLocations对象中返回isDefault值。如果isDefault返回true,则我不会将该组中的单选按钮设置为选中状态。 不知道我是否需要执行$ each(data,function(index,value)并遍历返回的每个对象,或者是否有更简单的方法使用角度构造来执行此操作。 目的: 标记: 问题答案: 使用代替。 由于代码重复,版本较差。