AngularJS If else 语句和/或 switch

标签 angularjs ionic-framework

我一直在修改 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 来实现它。但是我发现 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”,然后执行正确的操作。

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

最佳答案

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

关于AngularJS If else 语句和/或 switch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34264370/

相关文章:

javascript - 如何使用 Angular 对所有数组值求和

ionic-framework - 在 ionic 4 上添加刷卡火种

ionic-framework - 使用 $getByHandle() 加载时 ionic 滚动不会触发

javascript - 使用 Cordova/Angular JS 从用户位置获取地址

jquery - Angularjs Controller : how to call a controller in another controller?

javascript - 在图像上的新选项卡中打开链接,单击 Angular 而不使用弹出窗口拦截器

angularjs - 为什么 Angular $http 提供 headersGetter 而不仅仅是 headers?

javascript - Angular 1.2,将 Controller 声明为模块的方法

angular - Ionic 3 ngrx/store reducer 仅在生产模式下不接收调度的操作

javascript - ionic : How to make Angular Translate js working with Search Filter when language changed?