Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 基于另一个填充下拉列表,第二个仍然记得旧的选择_Angularjs - Fatal编程技术网

Angularjs 基于另一个填充下拉列表,第二个仍然记得旧的选择

Angularjs 基于另一个填充下拉列表,第二个仍然记得旧的选择,angularjs,Angularjs,我有一个不想要的行为:第二个下拉菜单会记住旧项目吗?为什么? (从另一根线借用的小提琴) 情景: 第一步。在第一个下拉列表中选择一个项目 第二步。在第二个下拉列表中选择一个项目 第三步。在第一个下拉列表中选择一个项目(在第二个下拉列表中不选择任何内容) 第四步。在第一个下拉列表中选择与步骤1相同的项目 我不知道如何解决这个问题,我一直在ng model=“option2”上使用$scope.$watch只是为了抓住问题,但没有成功 另外,通过在数据中设置option2=null,ng cha

我有一个不想要的行为:第二个下拉菜单会记住旧项目吗?为什么?

(从另一根线借用的小提琴)

情景:

  • 第一步。在第一个下拉列表中选择一个项目
  • 第二步。在第二个下拉列表中选择一个项目
  • 第三步。在第一个下拉列表中选择一个项目(在第二个下拉列表中不选择任何内容)
  • 第四步。在第一个下拉列表中选择与步骤1相同的项目
我不知道如何解决这个问题,我一直在ng model=“option2”上使用$scope.$watch只是为了抓住问题,但没有成功

另外,通过在
数据中设置
option2=null
,ng change=“getOptions2()”
也不会有帮助:

$scope.getOptions2 = function(){
  $scope.option2 = null;
};

有什么想法吗?谢谢

如果您观看
$scope.option2
值,您所经历的行为更容易理解

更改第一个下拉列表时,实际上不会修改
$scope.option2
值。它保持不变:它被记住了。要使它像你想要的那样工作,只需添加一行即可

$scope.option2 = null;
getOptions2
函数的末尾。就这样。如果您想对当前行为进行更多解释,请继续阅读

如果记住了值,为什么在我更改第一个选择时第二个选择变为空白?
元素将显示所选值,前提是且仅当使用
ng选项
绑定到此元素的数组中可以找到
ng model
的值

从两个下拉列表中选择第一个项目。现在:

$scope.option2 = "option2 - 1-1";
$scope.options2 = ["option2 - 1-1","option2 - 1-2","option2 - 1-3"];
如您所见,第一个变量可以在数组中找到,因此该值显示为当前选定值。现在仅将第一个下拉列表更改为第二项:

$scope.option2 = "option2 - 1-1";
$scope.options2 = ["option2 - 2-1","option2 - 2-2","option2 - 2-3"];

如您所见,
$scope.option2
没有更改,但它不再位于
$scope.options2
数组中。因此,其值不是当前选择的displayer。

$scope.option2=null;这不是我的全部解决方案(小提琴只是一个例子)。然而,你的进一步解释使我有可能解决我的问题。回答得很好!:)