Я использую AngularJs, в котором у меня есть коллекция флажков, и установили один из выбранных элементов. Index.cshtml имеет следующий код:установите флажок по умолчанию нажатием кнопки в AngularJS
<div ng-controller="testController" ng-init="init()">
<form name="mainForm" id="createForm" ng-submit="mainForm.$valid && add()" novalidate="">
<div class="container" ng-show="createMenu">
<div class="row">
<div class="col-lg-2 col-md-2 col-sm-2 ">
<label>Delivery Method</label>
</div>
<div class="col-lg-2 col-md-2 col-sm-2" ng-repeat="method in deliveryMethods">
<input type="checkbox" id="{{method.id}}" value="{{method.value}}" name="deliveryMethod[]" ng-model="method.selected" ng-click="toggleSelection(method.value)" ng-required="!someSelected"> {{method.value}}
</div>
</div>
<span style="color:red" ng-show="submitted == true && !someSelected">Delivery is required</span>
<input type="button" id="btnReset" value="Cancel" ng-click="reset()" />
</div>
</form>
</div>
данные флажка наполненные, как показано ниже в controller.js:
$scope.deliveryMethods = [{
"id": 1,
"value": "test-up",
selected: true,
}, {
"id": 2,
"value": "test two",
selected: false
}, {
"id": 3,
"value": "test three",
selected: false
}];
Здесь «тест-вверх» выбран по умолчанию. Если я выберу опцию «test two» и затем нажмите «Отменить», я хочу установить флажок «Тест» в качестве выбранного. Я попытался следующий код, но не работает:
$scope.clear = function() {
$scope.deliverySelection = ["test-up"];
$scope.submitted = false;
$scope.clearAll();
}
$scope.reset = function() {
$scope.clear();
}
$scope.toggleSelection = function toggleSelection(deliveryMethods) {
var idx = $scope.deliverySelection.indexOf(deliveryMethods);
// is currently selected
if (idx > -1) {
$scope.deliverySelection.splice(idx, 1);
} else {
$scope.deliverySelection.push(deliveryMethods);
}
someSelected();
};
$scope.someSelected = true;
function someSelected() {
$scope.someSelected = false;
for (var i = 0; i < $scope.deliveryMethods.length; i++) {
if ($scope.deliveryMethods[i].selected == true) {
$scope.someSelected = true;
return false;
}
}
}
$scope.clearAll = function() {
angular.forEach($scope.deliveryMethods, function(checkbox_id) {
if (checkbox_id.id != 1)
checkbox_id.selected = false;
});
}
Как установить флажок «тест-вверх», как отмечено, при нажатии на кнопку отмены? Благодаря