Angularjs: Как заставить ui-select иметь только одностороннюю привязку модели?

С помощью директивы 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>

Вот плункер, демонстрирующий мою проблему: https://plnkr.co/edit/FkZsFcMrTveWjXR5HNyT?p=preview

Моя проблема:

Как сделать ui-select, чтобы привязка к модели осуществлялась только в одном направлении, чтобы при изменении выбранной области действия она не привязывалась к ui-select? Если я перефразирую: как заставить ui-select действовать как угловое выделение?

2 ответа

Решение

Возможно, вам придется добавить $watch к животному / машине и сохранить выбранный объект в другой переменной $scope. Я не вижу другого пути, так как uiSelected ссылки на объект в массиве животных.

Использовать событие on-select:

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

Посмотрите на этот плункер: https://plnkr.co/edit/Zcb9xlPm6TW7DFk1sjAO?p=preview

Используйте однонаправленное связывание с этим,

{{::animal.name}}
Другие вопросы по тегам