在这里,我将值绑定到ng-click为
<input type="checkbox" ng-model="a.CheckAssign"ng-click="myFunctionnew(a.ENQUIRY_CODE,a.CheckAssign)" />
enquiryArr=[]
$scope.myFunctionnew = function(enqcode,checkassign)
{
enquiryArr.push(enqcode + '&' + checkassign)
var uniqueNames = [];
$.each(enquiryArr, function (i, el) {
if ($.inArray(el, uniqueNames) === -1) {
uniqueNames.push(el);
console.log(uniqueNames)
}
else
{
console.log(uniqueNames);
}
}
在这里,当我选中并取消选中复选框时,该值存储多个 请帮我如何存储查询代码和T / F值。
答案 0 :(得分:1)
如果我正确理解了您的问题,则说明您在enquiryArr
中遇到了重复的条目。之所以遇到这个问题,是因为您试图以一种奇怪的方式手动跟踪该阵列。尽管可以通过多种方法来纠正存储方式,但通过角度跟踪要检查的内容和不检查的内容甚至更容易。
使用以下数据集:
$scope.enquiries = [
{ENQUIRY_CODE: 'ENQUIRY_1', ENQUIRY_NAME: 'First Enquiry', selected: false},
{ENQUIRY_CODE: 'ENQUIRY_2', ENQUIRY_NAME: 'Second Enquiry', selected: false},
{ENQUIRY_CODE: 'ENQUIRY_3', ENQUIRY_NAME: 'Third Enquiry', selected: false},
{ENQUIRY_CODE: 'ENQUIRY_4', ENQUIRY_NAME: 'Fourth Enquiry', selected: false}
];
并将selected
字段绑定到您的复选框ng-model
<div ng-repeat="e in enquiries">
<input type="checkbox" ng-model="e.selected" />
{{e.ENQUIRY_NAME}}
</div>
只需查看$scope.enquiries
数组并寻找selected: true
(如果想知道未选中的对象,则为false
),即可确定要检查的对象。
在javascript中,您可以使用简单的数组过滤器来获取选定的值,例如:
$scope.enquiries.filter(e => e.selected);
或者,如果要在模板中获取它们,也可以使用filter
管道,例如:
{{(enquiries | filter:{selected:true})}}
这是一个interactive plunkr,您可以查看它。
其他注意:如果您确实想在单击复选框时运行某些内容,则仍然可以使用ng-click
并运行您的自定义代码,但是,我建议使用ng-change
作为除了单击之外,还有其他方法可以更改复选框的选定值。
答案 1 :(得分:0)
我已经测试了您的代码及其工作正常。您的问题不太清楚,因此您可以检查以下测试代码。
<div ng-controller="MyController">
<div ng-repeat="dt in data">
<input type="checkbox" ng-model="CheckAssign" ng-click="myFunctionnew(dt.name,dt.volume)" />
</div>
</div>
JavaScript
$scope.myFunctionnew = function(enqcode,checkassign)
{
enquiryArr.push(enqcode + '&' + checkassign)
var uniqueNames = [];
for(i=0; i <enquiryArr.length; i++) {
if ($.inArray(enquiryArr[i], uniqueNames) == -1) {
uniqueNames.push(enquiryArr[i]);
console.log(uniqueNames)
}
else
{
console.log(uniqueNames);
}
}
}