如果Dropdown Selected,则推入一个阵列,否则,推入另一个阵列

时间:2016-04-29 18:37:53

标签: javascript html angularjs ionic-framework

我编写了一个应用程序,我想在数组中推送一些东西,如果选择了Dropdown的Item,如果没有,那么它应该将它推入另一个Array。 下面是一些代码:

html.js

<label class="item item-input item-select">
  <div class="input-label">
    Muscle
  </div>
  <select ng-model="selOption">
    <option>Chest</option>
    <option>Biceps</option>
    <option>Back</option>
    <option>Stomach</option>
    <option>Legs</option>
    <option>Triceps</option>
    <option>Shoulders</option>
    <option>Traps</option>
  </select>
</label>

app.js

$scope.selOption = "Chest";

$scope.createEx = function(){
  if($selOption = "Chest")
  {
    $scope.chestEx.push({title:...., reps:....});
    console.log("Test");
  };
};

2 个答案:

答案 0 :(得分:0)

我不知道离子框架,但在角度代码和html需要改变。 需要在选项标记中使用OnPropertyChanged并比较value="someVlue"代替if($scope.selOption === "Chest")

HTML:

if($selOption = "Chest")

和控制器代码:

<select ng-model="selOption"> <!--if you want to call on change value then use ng-change="createEx()"-->
     <option value="Chest">Chest</option>
     <option value="Biceps">Biceps</option>
     <option value="Back">Back</option>
     <option value="Stomach">Stomach</option>
     <option value="Legs">Legs</option>
     <option value="Triceps">Triceps</option>
     <option value="Shoulders">Shoulders</option>
     <option value="Traps">Traps</option>
 </select>

答案 1 :(得分:0)

另一种选择是使用ng-change指令并重复这样的选项数组:

https://jsfiddle.net/kdb9ed7f/

<强>控制器

function Controller($scope) {
      var vm = this;

      vm.myOptions = [];
      vm.options = [
        'Chest',
        'Biceps',
        'Back',
        'Stomach',
        'Legs',
        'Triceps',
        'Shoulders',
        'Traps'
      ];

      vm.checkOption = checkOption;

      function checkOption() {
        if (vm.options[vm.selOption] == 'Chest') {
          vm.myOptions.push({
            name: 'Chest'
          });
          vm.selOption = null;
        }
      }
    }

<强> HTML

<div ng-controller="Controller as ctrl">
    <select ng-model="ctrl.selOption" ng-options="k as v for (k,v) in ctrl.options" ng-change="ctrl.checkOption()">
      <option>Select One</option>
    </select>
    <hr>
    <ul>
      <li ng-repeat="option in ctrl.myOptions">{{option.name}}</li>
    </ul>
</div>