选择后,AngularJS选择框值未设置为默认值

时间:2017-12-22 04:48:37

标签: angularjs

我是AngularJS的新手,我有一个带选项的选择框。当用户选中选项而不选中复选框时,我会显示一条消息。有用 !但之后我想将选项值设置为默认值。它不起作用。请帮我解决这个问题。

  this.onChange = function (ev, selectoptionModel){
  if(selectoptionModel == "OK"){

    if(this.myArray.length==0){

      alert = $mdDialog.alert({
        title: 'Attention',
        textContent: 'Please select option first',
        ok: 'Close'
      });

      $mdDialog
        .show( alert )
        .finally(function() {
          alert = undefined;
          selectoptionModel = "";

        });
    }
  }
  }

选择选项

 <div>
  <md-input-container>
      <md-select ng-model="selectoptionModel" ng-change="$dataListController.onChange($event,selectoptionModel)" placeholder="Bulk Action">
        <md-option value="DONE">DONE</md-option>
      </md-select>
    </md-input-container>

</div>

1 个答案:

答案 0 :(得分:0)

您正在更改功能参数,因此不会更改。 改为改变范围变量。

由于它位于函数内部,因此您可能无法获得this的引用,因此请使用变量vm并为其指定this值并使用内部函数。

this.onChange = function (ev, selectoptionModel){
  var vm = this;    
  if(selectoptionModel == "OK"){

    if(this.myArray.length==0){

      alert = $mdDialog.alert({
        title: 'Attention',
        textContent: 'Please select option first',
        ok: 'Close'
      });

      $mdDialog
        .show( alert )
        .finally(function() {
          alert = undefined;
          $scope.selectoptionModel = ""; // If it didnt work, try below function
          $scope.$apply(function(){
             $scope.selectoptionModel = "";
          })  
          $window.location.reload();
        });
    }
  }
 }

HTML:

 <div>
  <md-input-container>
      <md-select ng-model="selectoptionModel" ng-change="$dataListController.onChange($event,selectoptionModel)" placeholder="Bulk Action">
        <md-option value=""></md-option>
        <md-option value="DONE">DONE</md-option>
      </md-select>
    </md-input-container>

</div>