Angular JS 级联选择与 ng 模型和 ng 选项



所以我有点卡在连接到以前的选择模型的 3rc select

首先,您必须选择一个分支,然后您可以选择建筑物名称和楼层

虚拟机位置数据

[
{
    "_id": "5a61acfdd5df1761dd2eb1ef",
    "branch": "Lucena City",
    "__v": 0,
    "building": [
        {
            "name": "mhq",
            "floors": [
                "1st",
                "2nd",
                "3rd"
            ]
        }
    ],
    "dateCreated": "2018-01-19T08:31:57.121Z"
},
{
    "_id": "5a61ad6fd5df1761dd2eb1f1",
    "branch": "Lucban",
    "__v": 0,
    "building": [
        {
            "name": "mhq",
            "floors": [
                "ground floor",
                "2nd floor",
                "3rd floor",
                "4th floor",
                "5th floor"
            ]
        }
    ],
    "dateCreated": "2018-01-19T08:33:51.761Z"
},
{
    "_id": "5a61ada1d5df1761dd2eb1f2",
    "branch": "loperz",
    "__v": 0,
    "building": [
        {
            "name": "lope",
            "floors": [
                "ground floor",
                "1st floor"
            ]
        }
    ],
    "dateCreated": "2018-01-19T08:34:41.904Z"
}]

网页端

<div class="row justify-content-md-center">
<div class="col-md-4">
    <label for="branch">
        <strong>Branch</strong>
    </label>
    <select ng-options="loc as loc.branch for loc in vm.locations" ng-model="vm.locationTest" class="form-control">
    </select>
    <small id="emailHelp" class="form-text text-muted">Select branch.</small>
</div>
<div class="col-md-4">
    <label for="building">
        <strong>Building</strong>
    </label>
    <select ng-options="ds as ds.building for ds in vm.locationTest" ng-model="vm.roomData.building" class="form-control">
    </select>
</div>
<div class="col-md-4">
    <label for="roomFloor">
        <strong>Room Floor</strong>
    </label>
    <select ng-options="ds as ds for ds in vm.locationTest.floors" ng-model="vm.roomData.roomFloor" class="form-control">
    </select>
</div>

选择分支有效,之后我在将数据传递到第 2 和第 3 select时遇到问题。我不太擅长处理对象数据。

看起来你这里有一个错字:

<select ng-options="ds as ds.building for ds in vm.locationTest" ng-model="vm.roomData.building" class="form-control">
</select>

具体来说,vm.locationTest应该是vm.locationTest.building的,ds.building应该是ds.name

所以它将是:

<select ng-options="ds as ds.name for ds in vm.locationTest.building" ng-model="vm.roomData.building" class="form-control">
</select>

然后,我们还需要修复第 3 个ng-options

vm.locationTest.floors变得vm.roomData.building.floors

最新更新