我有一个模板:

<div class="oss-object cp-def cp-row" ng-repeat="(key, value) in data" ng-init="viewables = getViewables(value.versions[0].objectInfo);">
        <div class="cp-def">
            {{value.info.name}} OssStatus: {{value.versions[0].objectInfo.status}}
            , 3D-Viewables:
                <select ng-change="viewableSelected(value.versions[0].urn, viewables, '3d')" ng-model="viewables.selected3d" ng-options="viewable as viewable.name for viewable in viewables['3d']">
                    <option value="">---Please select---</option>
                </select>
            , 2D-Viewables:
                <select ng-change="viewableSelected(value.versions[0].urn, viewables, '2d')" ng-model="viewables.selected2d" ng-options="viewable as viewable.name for viewable in viewables['2d']">
                    <option value="">---Please select---</option>
                </select>
        </div>
    </div>


并且,当使用新数据集更新控制器中的数据(在顶部ng-repeat中使用的data属性)时,它不会自动刷新ng-options中的子作用域。从数据集中得出的。有人知道如何刷新子scopes吗?我尝试调用$apply$digest,但是没有成功。

最佳答案

正如我在评论中所说,您可以尝试将ng-options中的viewables['3d']替换为getViewables(value, '3d'),并让控制器返回数组。

09-13 04:22