如何使用AngularJS只选择一个单选按钮

时间:2016-07-25 13:30:23

标签: angularjs

我试图寻找类似于我的问题,但却发现我们的情况并不相同。所以我在这里张贴。

我正在尝试创建一个问题列表,其中选择方法取决于问题,因此问题#1可以有单选按钮,问题#2可以有复选框,依此类推。一组允许用户使用单选按钮选择答案,但是它们的行为类似于复选框(减去取消选中)。我错过了什么吗?

以下是我的HTML:

<ul style="padding-left:30px;">
    <li ng-repeat="query in carousel.currentQuestionObject.choices" style="padding-bottom:5px;" ng-init="carousel.checkboxCollection[query.id] = carousel.currentQuestionObject.init">
        <input type="{{carousel.currentQuestionObject.inputType}}" id="{{query.id}}" ng-model="carousel.checkboxCollection[query.id]">
        <label for="{{query.id}}" style="font-family:'MetricWeb-Regular';font-size:17px;cursor:pointer">&nbsp;&nbsp;{{query.question}}</label>
    </li>
</ul>

以下是我处理单选按钮答案的AngularJS:

{ inputType: "radio", init:false, question: "Tell us about your needs...", 
  choices: [
            { question: "Foo1", id: "qs1q1"},
            { question: "Foo2", id: "qs1q2"},
            { question: "Foo3", id: "qs1q3"},
            { question: "Foo4", id: "qs1q4"}
]},

这就是我目前所得到的:

enter image description here

请帮忙。

谢谢。

1 个答案:

答案 0 :(得分:0)

在下面分享我的解决方案。谢谢Simon Pertersen的指导!添加名字确实很有用。

HTML:

<ul style="padding-left:30px;">
    <li ng-repeat="query in carousel.currentQuestionObject.choices" style="padding-bottom:5px;" ng-init="carousel.checkboxCollection[query.id] = carousel.currentQuestionObject.init">
        <input name= "carousel.currentQuestionObject.name" type="{{carousel.currentQuestionObject.inputType}}" id="{{query.id}}" ng-model="carousel.checkboxCollection[query.id]">
        <label for="{{query.id}}" style="font-family:'MetricWeb-Regular';font-size:17px;cursor:pointer">&nbsp;&nbsp;{{query.question}}</label>
    </li>
</ul>

AngularJS:

{ inputType: "radio", name: 'qs1needs', init:false, question: "Tell us about your needs...", 
            choices: [
                      { question: "Foo1", id: "qs1q1"},
                      { question: "Foo2", id: "qs1q2"},
                      { question: "Foo3", id: "qs1q3"},
                      { question: "Foo4", id: "qs1q4"}
]},