1

А 声明 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", ..] }, ...]}, ...]

当我选择第一个输入值时,它会启用第二个;第二次选择后可以选择第三个选项。但是,如果我更改第一个选项,第二个输入会重置其值,但它不会影响模型值并且第三个元素不会被禁用。问题可以在这里看到。

当第二个输入的选择发生变化时,如何使值current.mark发生变化?

4

1 回答 1

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;
    }
});

似乎得到了你想要的。

小提琴

也许其他人可以用更简单的方式解决它。

于 2013-10-25T20:03:17.000 回答