Javascript Angularjs:如何让ui选择只有一种方式的模型投标?

Javascript Angularjs:如何让ui选择只有一种方式的模型投标?,javascript,angularjs,angularjs-directive,ui-select,ngsanitize,Javascript,Angularjs,Angularjs Directive,Ui Select,Ngsanitize,使用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

使用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>

这是一个演示我的问题的例子:

我的问题:


如何使ui选择仅与模型进行单向绑定,以便在更改所选范围模型时,它不会绑定到ui选择?如果我换一句话:如何使ui select像angular native select一样工作?

您可能需要将$watch添加到动物/汽车中,并将所选对象保存在不同的$scope变量中。我看不到其他方法,因为UIS在animals数组中选择了对象上的引用

在选择事件时使用:

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

查看此plunker:

您可能需要将$watch添加到动物/汽车中,并将所选对象保存在不同的$scope变量中。我看不到其他方法,因为UIS在animals数组中选择了对象上的引用

在选择事件时使用:

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

看看这个插件:

使用单向绑定

{{::animal.name}}

使用单向绑定

{{::animal.name}}

嗯,我真的很喜欢这种简单的方法。问题是我的模型仍然是绑定的,我需要稍后将它们发布到REST端点。有没有一种方法可以使这种单向绑定不仅适用于视图,也适用于模型?@ccostel尝试隔离您的范围值。。看看这篇文章,嗯,我真的很喜欢这种简单的方法。问题是我的模型仍然是绑定的,我需要稍后将它们发布到REST端点。有没有一种方法可以使这种单向绑定不仅适用于视图,也适用于模型?@ccostel尝试隔离您的范围值。。检查这篇文章谢谢你的建议。我想到了这个。但说实话,我觉得这有点肮脏。由于我的模型可以动态扩展,如果有一种更整洁的方法来解决这一问题,那将是一件好事。很抱歉,ccostel,但由于您使用自定义指令(ui select),我担心无法更改模型绑定。ui select将所选值直接绑定到其ng模型属性。uiSelected.animal引用$scope.animals数组中的项。如果数组中的对象发生更改,这将直接影响uiSelected.animal,因为它只是一个引用,而不是对象的副本。谢谢您的建议。我想到了这个。但说实话,我觉得这有点肮脏。由于我的模型可以动态扩展,如果有一种更整洁的方法来解决这一问题,那将是一件好事。很抱歉,ccostel,但由于您使用自定义指令(ui select),我担心无法更改模型绑定。ui select将所选值直接绑定到其ng模型属性。uiSelected.animal引用$scope.animals数组中的项。如果数组中的对象发生更改,这将直接影响uiSelected.animal,因为它只是一个引用,而不是对象的副本。