如何使ng-options在启用后运行?

时间:2017-09-27 21:46:55

标签: javascript angularjs

所以,我有这两个下拉元素,第二个输出将取决于第一个输入。第二次下拉将输入第一次下拉为(ng-options="reason for reason in getReason($ctrl.selectedItem)) 但是我意识到第二个下拉列表不会等待第一个下拉列表被选中并运行ng-options但是因为它首先需要输入。它会导致null错误。

如何解决此问题?

class Items{
  constructor(){
       this.items = ["item1", "item2", "item3"];
       this.selectedItem = null;
       this.stuff = {
          "item1" : ["asdd"],
          "item2" : ["asdasdsd", "asdsddd],
          "item3" : ["asdasdasd]
       };
  }
  getReason(item){
    return this.stuff[item];
  }
}
<select ng-model=“$ctrl.selectedItem” ng-options=“item for item in items”>
</select>
<select  ng-disabled=“!$ctrl.selectedItem” ng-options=“reason for reason in getReason($ctrl.selectedItem)”>

1 个答案:

答案 0 :(得分:0)

如果getReason不是“有效”参数,请更改item以返回空数组。

getReason(item){
    item ? return this.stuff[item] : [];
}

注意:这将保持第二个下拉列表为空,直到item参数有效。