Angularjs: 如何让ui-select只有一种方式绑定模型?

Angularjs: How to make ui-select have only one way model biding?

使用 angularjs navite select 指令,模型绑定只是一种方式,而在 ui-select 中,这似乎总是双向绑定。

  <ui-select ng-model="uiSelected.animal">

    <ui-select-match>
            <span ng-bind="$select.selected.name"></span>
     </ui-select-match>

    <ui-select-choices repeat="animal in (animals | filter: $select.search) track by $index">
        <span ng-bind="animal.name"></span>
    </ui-select-choices>

</ui-select>

这是展示我的问题的 plunker: https://plnkr.co/edit/FkZsFcMrTveWjXR5HNyT?p=preview

我的问题:

如何使 ui-select 仅以一种方式与模型竞标,以便在我更改 selected 范围模型时它不会绑定到ui-select?如果我换句话说:如何让 ui-select 表现得像 angular 原生 select?

您可能需要将 $watch 添加到 animal/car 并将您的 selected 对象保存在不同的 $scope 变量中。我看不到另一种方式,因为 uiSelected 引用了动物数组中的对象。

使用 on-select 事件:

on-select="onSelectCallback($item, $model)"

看看这个笨蛋:https://plnkr.co/edit/Zcb9xlPm6TW7DFk1sjAO?p=preview

对此使用单向绑定,

{{::animal.name}}