我一直在修改AngularJS中的一些代码。我遇到了一个小问题。 我希望用户从3个选项中进行选择...(请在下面查看我的HTML)
<label class="item item-input item-select">
<div class="input-label">
Frequentie
</div>
<select name="multipleSelect" id="multipleSelect" ng-model="data.multipleSelect">
<option value="eenmalig" >Eenmalig</option>
<option value="maandelijks">Maandelijks</option>
<option value="wekelijks">Wekelijks</option>
</select>
</label>
根据要求提供激活按钮的代码:
<div class="bar ">
<input type="button"
ng-click=addToNgRepeatMinus("uitgiften");startAgain()
value="uitgaven"
class="button button-dark"
id="uitgiftenbutton">
<input type="button"
ng-click=addToNgRepeatPlus("inkomsten");startAgain()
value="inkomsten"
class="button button-dark"
id="inkomstenbutton">
</div>
现在我的一般理解是,我可以让某些事情发生,这取决于他们选择哪种陈述。 (我相信你可以,但我无法解决!)
首先,我尝试使用if,if else和else for ..但我发现if else语句在AngularJS中不可用。(请纠正我,如果是!)
很自然地,我试图使用一个开关..它不能令人伤心!
$scope.addToNgRepeatMinus = function(data) {
if(data === "uitgiften"){
switch(multipleSelect) {
case "eenmalig":
$scope.uitgiften.push({name: $scope.formulier.name,value: $scope.formulier.value});
break;
case "maandelijks":
$scope.uitgiften.push({name: $scope.formulier.name,value: $scope.formulier.value});
break;
case "wekelijks":
$scope.uitgiften.push({name: $scope.formulier.name,value: 4*$scope.formulier.value});
break;
}
}
};
这段代码也与某些按钮交互。 (当按下这些按钮时,函数addToNgRepeatMinus被激活。)因此,当我按下按钮时,它会检查传入的数据是否等于“uitgiften”。如果它这样做,它应该知道data.multipleSelect将等于“eenmalig”,“wekelijks”或“maandelijks”,然后做正确的事情。
有人可以帮我吗?我究竟做错了什么 ? :)
答案 0 :(得分:2)
由于您的下拉列表(选择)已映射到
data.multipleSelect
ng-model,因此当您执行select ng-model="data.multipleSelect"
时,您将所选内容绑定到$scope.data.multipleSelect
。因此,在您的控制器中,如果您想要访问所选值,请使用以下命令:
$scope.data.multipleSelect
$scope.addToNgRepeatMinus = function(data) {
if(data === "uitgiften"){
switch($scope.data.multipleSelect) {
case "eenmalig":
$scope.uitgiften.push({name: $scope.formulier.name,value: $scope.formulier.value});
break;
case "maandelijks":
$scope.uitgiften.push({name: $scope.formulier.name,value: $scope.formulier.value});
break;
case "wekelijks":
$scope.uitgiften.push({name: $scope.formulier.name,value: 4*$scope.formulier.value});
break;
}
}
};
答案 1 :(得分:1)
从您显示的代码中,您应该使用switch($ scope.data.multipleSelect)
如果这不起作用,您需要提供更多代码。