我在角度页面中遇到动态ng模型值的问题。这是我的样本JSON。
mytabs = [
{
name : "tab1",
values : [
{value:"value1"},
{value:"value2"},
{value:"value3"},
{value:"value4"}
]
},
{
name : "tab2",
values : [
{value:"value1"},
{value:"value2"},
{value:"value3"},
{value:"value4"}
]
}
]
我想从这个josn做的是,在我的页面中创建一个视图,它将包含tab1
和tab2
作为页面的标题和相应的value
作为checkbox
。用户可以选择选择他的选项。在提交时,我想获得他选择的选项。我想知道在我的控制器中选择了value1,value3 (frome tab1)
,value1,value2(from tab2)
之类的东西。我怎么能这样做?
这是我的示例方法。
<div ng-repeat="tab in mytabs">
<h1>{{tab.name}}</h1>
<div ng-repeat="val in tab.values">
<input type="checkbox" ng-model="val.value"/>
</div>
</div>
<input type="button" value="submit" ng-click="checkValues(val)"
请帮助我,
谢谢
答案 0 :(得分:3)
您应该稍微修改一下代码,您应该在对象中添加checked属性并将复选框绑定到该模型。
请使用以下想法或代码来获得您想要的更紧密的内容
<div ng-repeat="tab in mytabs">
<h1>{{tab.name}}</h1>
<div ng-repeat="val in tab.values">
<input type="checkbox" ng-model="val.checked"/>
</div>
</div>
<input type="button" ng-click="checkValues()" value="checkitems" />
<script>
var app = angular.module('plunker', []);
app.controller('MainCtrl', function ($scope,$filter) {
$scope.mytabs = [
{
name: "tab1",
values: [
{ value: "value1",checked:false },
{ value: "value2", checked: false },
{ value: "value3", checked: false },
{ value: "value4", checked: false }
]
},
{
name: "tab2",
values: [
{ value: "value1", checked: false },
{ value: "value2", checked: false },
{ value: "value3", checked: false },
{ value: "value4", checked: false }
]
}
];
$scope.checkValues = function () {
angular.forEach($scope.mytabs, function (value, index) {
var selectedItems = $filter('filter')(value.values, { checked: true });
angular.forEach(selectedItems, function (value, index) {
alert(value.value);
});
});
};
});