Javascript 使用ng repeat、ng model和复选框获取数组中的位置
我必须问我的用户一系列问题并记录他们的回答。问题和可能答案的类型/数量各不相同,因此我试图以一种捕获所有问题类型的方式编写代码。两个问题是: 你喜欢什么规模的组织? 答案选项:1-10、11-50、51-200、201-500、501-1000、1001-5000、5001-10000、10000+ 你喜欢什么样的着装规范? 回答选项:休闲、商务休闲、正式 我需要向两个不同的用户提出相同的问题,并相互比较他们的回答,以确定%匹配。由于答案不同,我想在所选答案的数组中匹配位置。这样,我可以在视图中动态构建答案选项,并对所有问题使用相同的匹配算法。user1 answerArray[1,3,5]和user2 answerArray[2,3,5]回答3个匹配项,因此得一分。或者,user1 answerArray[false,false,true,true,true]和user2 answerArray[true,true,true,false,false]他们都选择了答案3,所以打1分 我目前的方法是尝试使用ng repeat为每个答案创建一个复选框,但我不确定如何确定选中哪个复选框。我尝试使用索引来获取repeat循环中的位置,但它不起作用,我不知道如何处理将其传递到submit函数中Javascript 使用ng repeat、ng model和复选框获取数组中的位置,javascript,angularjs,algorithm,Javascript,Angularjs,Algorithm,我必须问我的用户一系列问题并记录他们的回答。问题和可能答案的类型/数量各不相同,因此我试图以一种捕获所有问题类型的方式编写代码。两个问题是: 你喜欢什么规模的组织? 答案选项:1-10、11-50、51-200、201-500、501-1000、1001-5000、5001-10000、10000+ 你喜欢什么样的着装规范? 回答选项:休闲、商务休闲、正式 我需要向两个不同的用户提出相同的问题,并相互比较他们的回答,以确定%匹配。由于答案不同,我想在所选答案的数组中匹配位置。这样,我可以在视图中
form.form-horizontal(ng-submit='answer(not sure what to do with params here)')
div.form-group(ng-repeat='answer in questionData.answers')
label.col-xs-3 {{answer}}:
input(type='checkbox' ng-model='index' ng-change='checked(true, false)')
我已经阅读了一些关于组合ng repeat和ng model的其他答案,我可以将数组设置为对象数组,然后将ng model设置为对象属性。这似乎是不必要的数据转换。我很高兴听到其他解决办法
页面如下所示:
<div ng-view="" class="ng-scope">
<div class="ng-binding ng-scope">What size organization do you prefer?</div>
<form ng-submit="answer(1,2,3,4,5,6,7,8)" class="form-horizontal ng-pristine ng-valid ng-scope"><!-- ngRepeat: answer in questionData.answers -->
<div ng-repeat="answer in questionData.answers" class="form-group ng-scope">
<label class="col-xs-3 ng-binding">1-10:
<input type="checkbox" ng-model="$index" ng-change="checked(true, false)" class="ng-pristine ng-untouched ng-valid"></label>
你喜欢什么规模的组织?
1-10:
您可以使用$index访问循环中当前项的位置。因此,您可以将模型值指定为
answerArray[$index]
,以便获得结果数组
input(type='checkbox' ng-model='answerArray[$index]' ng-change='checked(true, false)')
可以使用$index访问循环中当前项的位置。因此,您可以将模型值指定为
answerArray[$index]
,以便获得结果数组
input(type='checkbox' ng-model='answerArray[$index]' ng-change='checked(true, false)')
ng repeat
附带$index
。例如:
<li ng-repeat="page in pages">
<a ng-class="{ testClass: $index == pageNumber }" ng-click="setPageNumber($index)">{{ page }}</a>
</li>
{{page}
ng repeat
附带$index
。例如:
<li ng-repeat="page in pages">
<a ng-class="{ testClass: $index == pageNumber }" ng-click="setPageNumber($index)">{{ page }}</a>
</li>
{{page}
如何将结果传递到提交功能中?如果我有类似ng submit=answers()的东西,我猜参数将是1,2,3。。。若我用$index设置ng模型,那个么它不会注册为数字的字符串表示,而不是ng模型表示的var吗?那么我如何处理传入可变数量的参数呢?@user137717你能分享生成的html样本吗?我在文章末尾添加了一个编辑。我使用了一个小片段,因为我使用的是ng视图,我找不到一种方法来漂亮地打印元素选项卡中的输出。查看页面源仅显示我的布局模板。邮递员也一样。我如何将结果传递到我的提交功能中?如果我有类似ng submit=answers()的东西,我猜参数将是1,2,3。。。若我用$index设置ng模型,那个么它不会注册为数字的字符串表示,而不是ng模型表示的var吗?那么我如何处理传入可变数量的参数呢?@user137717你能分享生成的html样本吗?我在文章末尾添加了一个编辑。我使用了一个小片段,因为我使用的是ng视图,我找不到一种方法来漂亮地打印元素选项卡中的输出。查看页面源仅显示我的布局模板。邮递员也一样。