AngularJS if else 语句 and/or switch

AngularJS If else statement and/or switch

我一直在修改 AngularJS 中的一些代码。我运行进了一个小问题。 我希望用户从 3 个选项中 select...(在下面查看我的 HTML for )

<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>   

现在我的一般理解是,我可以让某些事情发生,这取决于他们会选择哪种说法 select。 (我相信你可以,但我不能 atm!)

首先,我尝试使用 if、if else 和 else。但是我发现 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",然后做正确的事情。

有人可以帮我解决这个问题吗?我究竟做错了什么 ? :)

根据您显示的代码,您应该使用 switch($scope.data.multipleSelect)

如果这不起作用,您需要提供更多代码。

As your dropdown(select) is mapped to data.multipleSelect ng-model so when you do select ng-model="data.multipleSelect", you are binding your select to $scope.data.multipleSelect.

So, inside your controller, if you want to have an access your selected value, you use the following : $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;
  }
}
};