加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 09:23:07 所属栏目:安全 来源:网络整理
导读:我有一个问题绑定单选按钮到一个对象的属性具有布尔值。我试图显示从$资源检索的考试问题。 HTML: label data-ng-repeat="choice in question.choices" input type="radio" name="response" data-ng-model="choice.isUserAnswer" value="true" / {{choice.t
我有一个问题绑定单选按钮到一个对象的属性具有布尔值。我试图显示从$资源检索的考试问题。

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.",isUserAnswer: "false"
        },isUserAnswer: "true"
        },isUserAnswer: "false"
        }]
};

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

Here’s the jsFiddle showing non-working and working objects

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>

参考:Straight from the horse’s mouth

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读