Angularjs:当前选项不在select域中时的默认值

时间:2014-03-17 01:39:39

标签: angularjs select default

我有级联选择,第一个中的值决定了应该是其他人的选项。

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

我期待(相当)像Why does AngularJS include an empty option in select?这样的类似问题,但似乎没有用,可能是因为我的选项不是预定义的,而是在变化时生成的。

我使用实际代码设置jsfiddle:http://jsfiddle.net/sXu9a/

  1. 在第一次选择
  2. 时选择2小时或更长时间
  3. 第二个选择(开始时间)中的chosse 1
  4. 在第一次选择中选择不到1小时
  5. =>第二个选择显示一个空选项,“startHour”模型仍然包含最后选择的值(这不再是一个有效的选择)。我真的想更新该选项的ng-model重置为0。

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

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

    但这似乎不起作用。

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

所以,只要你没有在你名字的变量中输入拼写错误,就会发生“onChange”解决方案的工作。因此,使用以下代码(在第一次选择时调用onChange):

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

}

对不起噪音!