UI-Select2 привязка к объекту вместо свойства объекта
Я использую ui-select2, версия 3.5.2, пытаюсь сделать один выбор, набрать текст вперед и получить из REST API, выпадающий список. Похоже, что это работает, за исключением одной серьезной проблемы, которая заключается в том, что свойство ng-модели устанавливается в объект {Id: "some id", text: "some text"}
вместо фактического свойства Id. Я не могу понять, как сказать элементу управления ui-select2 установить свойство ng-model для поля "Id" объекта вместо целого объекта. Я пробовал различные хаки с наблюдателями, но нигде не получил. Я уверен, что мне чего-то не хватает, потому что это легко сделать.
Вот мой код JavaScript:
$scope.selectOptions = {
placeholder: '- Select Value -',
allowClear: true,
minimumInputLength: 2,
initSelection: function (element, callback)
{
if ($scope.myobj && $scope.myobj.Id && $scope.myobj.Id !== '00000000-0000-0000-0000-000000000000')
{
$.ajax("../../api/objs/" + $scope.myobj.Id).done(function (data) {
var res = $(data).map(function (i, o) {
return {
id: o.Value,
text: o.Display
};
}).get();
callback(res[0]);
});
}
},
ajax:
{
type: "GET",
url: function (term) {
return ["../../api", "objs", encodeURIComponent(term)].join("/");
},
dataType: "json",
contentType: "application/json",
cache: false,
results: function (data, page) {
return {
results: $(data).map(function (i, o) {
angular.extend(o, {
id: o.Value,
text: o.Display
});
return o;
}).get()
};
}
}
}
Вот мой HTML-код:
<div ui-select2='selectOptions' ng-model="myobj.Id" style="width:215px" />
1 ответ
Я справился с этим, связавшись с отдельным свойством, а затем добавив ng-change в свой div и синхронизировав поле id свойства привязки с фактическим свойством моего объекта.