Я пытаюсь упростить операторы if моего кода.
На данный момент у меня есть эти 3 уродливые операторы if, и я ищу способ присвоить имя свойству vm.model
, исходя из которого в настоящее время истинно значение vm.model.status
.
Скажи vm.model.received === true
Я хотел бы написать что-то вроде
vm.model.status = //vm.model[name] << if vm.model.received/issued/cancelled true
Возможно ли в этом случае написать код лучше, чем повторяться 3 раза?
angular.module('app',[])
.controller('mainCtrl', function() {
var vm = this;
vm.model = {
received: true,
issued: false,
cancelled: false,
anotherProp: 'abc',
anotherProp2: 'def'
}
if(vm.model.received) {
vm.model.status = 'received';
} else if(vm.model.issued) {
vm.model.status = 'issued';
} else if(vm.model.cancelled) {
vm.model.status = 'cancelled';
}
})
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.5/angular.min.js"></script>
</head>
<body>
<div ng-controller="mainCtrl as vm">
<form>
<input type="radio" ng-model="vm.model.status" value="received">Received
<input type="radio" ng-model="vm.model.status" value="issued">Issued
<input type="radio" ng-model="vm.model.status" value="cancelled">Cancelled
</form>
</div>
</body>
</html>