【问题标题】:Angularjs: default value when current option not in domain of selectAngularjs:当前选项不在选择域中时的默认值
【发布时间】:2014-04-22 03:19:49
【问题描述】:

我有级联选择,第一个值决定了其他人应该选择什么。

当我更改第一个选择的值以使当前选择的另一个值不再是可能的选择时,我得到一个空(空)选择。就地,我想获得一个默认值,而不是 null 值(当然,我不想重置为默认值是选择仍然合法)。

我查看了(相当)类似的问题,例如Why does AngularJS include an empty option in select?,但似乎不起作用,可能是因为我的选项不是预定义的,而是在更改时生成的。

我用实际代码设置了一个 jsfiddle:http://jsfiddle.net/sXu9a/

  1. 在第一次选择时选择 2 小时或更长时间
  2. 在第二次选择中选择 1(开始时间)
  3. 在第一次选择中选择不到 1 小时

=> 第二个选择显示一个空选项,并且“startHour”模型仍然包含最后一个选择的值(这不再是一个有效的选择)。我真的很想更新 ng-model 以将该选项重置为 0。

事实上,我希望能够对条件进行编码:“如果所选选项的当前模型值不在可能值的集合中,则重新分配给模型一个默认值 (0)”。所以我尝试了这样的“onChange”:

   $scope.onChangeInterval = function() {
     if(jQuery.inArray($scope.agentSchedule.startHour, $scope.startHours() ) ) {
       $scope.agentSchedule.startHour = $scope.startHours()[0];
     }
   }

但这似乎不起作用。

对此有任何想法吗?

【问题讨论】:

    标签: angularjs select default


    【解决方案1】:

    所以,“onChange”解决方案确实有效,只要您不在您的姓名变量中输入拼写错误。因此,使用以下代码(在第一次选择时调用 onChange):

    $scope.onChangeInterval = function() {
     if(jQuery.inArray($scope.agentSchedule.startHour, $scope.hours() ) ) {
       $scope.agentSchedule.startHour = $scope.hours()[0];
     }
    

    }

    抱歉打扰了!

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多