AngularJS If else语句和/或开关

时间:2015-12-14 10:11:37

标签: angularjs ionic

我一直在修改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”,然后做正确的事情。

有人可以帮我吗?我究竟做错了什么 ? :)

2 个答案:

答案 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)

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