А声明3个选择输入,并选择分层数据:
<select data-ng-model="current.manufacturer" data-ng-options="c.name for c in manufactures"></select>
<select data-ng-model="current.mark" data-ng-options="c.name for c in current.manufacturer.marks" data-ng-disabled="!current.manufacturer"></select>
<select data-ng-model="current.material" data-ng-options="c for c in current.mark.materials" data-ng-disabled="!current.mark"></select>
和数据模型如:
[{ name: "manufacturer_name",
marks: [{ name: "mark_name",
materials: ["material", ..] }, ...]}, ...]
当我选择第一个输入值时,它会启用第二个输入值;在第二次选择之后可以选择第三个选项。但是,如果我更改第一个选项,则第二个输入会重置其值,但它不会影响模型值,并且第三个元素不会被禁用。可以看到问题here。
如何在第二个输入的选择发生变化时更改current.mark
的值?
答案 0 :(得分:1)
mark
后, material
和manufacturer
未重置。我继续向示波器添加一些监视,以便在发生变化时隐式设置模型值。
$scope.$watch('current.manufacturer', function (newValue, oldValue) {
if (newValue !== oldValue) {
$scope.current.mark = null;
$scope.current.material = null;
}
});
$scope.$watch('current.mark', function (newValue, oldValue) {
if (newValue !== oldValue) {
$scope.current.material = null;
}
});
似乎得到你想要的东西。
也许其他人可以用更简单的方式解决它。