javascript - uruguayos - cómo hacer que el valor del ng-model sea establecido por el valor de ui-select
valor unidad indexada 2017 (2)
Actualmente estoy usando angular-ui / ui-select en mi proyecto. Puedo vincular el valor de ui-select a un objeto sin problema, sin embargo, está vinculando todo el item
que se está iterando. Me gustaría vincular solo en función de item.codeId
esto me permitiría conservar los datos correctos y mostrar el valor correcto en el menú desplegable cuando se carga la página.
¿Cómo puedo configurar ui-select para hacer esto?
<ui-select ng-model="myObject.stateCode" id="stateCode">
<ui-select-match placeholder="Select a state...">{{$select.selected.codeDescription}}</ui-select-match>
<ui-select-choices repeat="item in constants.states | filter: $select.search" value="{{$select.selected.codeId}}">
<div ng-bind-html="item.codeDescription | highlight: $select.search"></div>
<small ng-bind-html="item.codeId | highlight: $select.search"></small>
</ui-select-choices>
</ui-select>
Creo que lo que harías es usar la cláusula repeat=
y deshacerte de la propiedad del valor. Un ejemplo está aquí: http://plnkr.co/edit/htm8UNxVOlC076LVVezE?p=preview
De lo que he copiado algo: https://github.com/angular-ui/ui-select/blob/master/examples/demo-bind-to-single-property.html
<ui-select ng-model="myObject.stateCode" id="stateCode">
<ui-select-match placeholder="Select a state...">{{$select.selected.codeDescription}}</ui-select-match>
<ui-select-choices repeat="item.codeId as item in constants.states | filter: $select.search">
<div ng-bind-html="item.codeDescription | highlight: $select.search"></div>
<small ng-bind-html="item.codeId | highlight: $select.search"></small>
</ui-select-choices>
</ui-select>
Su código está bien, pero hubo un error que causó esto al usar una matriz secundaria (constantes.estados).
Acabo de solucionar este problema en https://github.com/angular-ui/ui-select/pull/131 , específicamente este commit
Lanzamiento de la nueva versión v0.5.1 . Si estás usando bower, solo ejecuta la bower update
.