igCombo в Durandal связать выбранные элементы

У меня есть комбо Ign ite UI Infragistics на html-странице в проекте Durandal. Я хочу ее selectedItem свойство, которое будет связано с любой переменной в JavaScript. Как мне это сделать? благодарю вас.

1 ответ

Взгляните на этот пример: Bind Combo With KnockoutJS (Durandal использует Knockout, поэтому вы сможете взять большую часть кода этого примера и использовать его повторно).

По сути, в вашей модели представления вам понадобится дополнительная наблюдаемая, которая будет содержать текущий выбор, в этом примере это "actorName", определенное как:

function ViewModel(actorsList) {
    var self = this;
    this.actorsList = actorsList;

    this.actors = ko.observableArray(self.actorsList);

    //  The name of the currently selected customer.
    this.actorName = ko.observable(self.actors()[0].name);
}

(Я отредактировал некоторые из них, так как в примере есть второй элемент select, используемый для изменения комбинации)

Затем в своем комбо в представлении вы хотите связать это дополнительное наблюдаемое со свойством 'text', как в примере:

<span id="comboActors" data-bind="igCombo: { 
    text: actorName,
    dataSource: actors,
    textKey: 'name',
    valueKey: 'id',
    allowCustomValue : true,
    enableSelectionChangedUpdate: true,
    width: '200',
    mode: 'dropdown',
    enableClearButton: false
}"></span>

Обратите внимание, как name - это значение, которое вы передаете наблюдаемой модели представления, и то же свойство name определяется как текстовый ключ, поэтому комбинация фактически выберет нужный элемент при задании текста. Теперь все, что вам нужно сделать, это изменить значение, например:

viewModel.actorName("Jeremy Irons");

И комбо изменит выбор (вы даже можете попробовать это с примером, используя код в консоли). Это основа, есть раздел справки по настройке поддержки Knockout (igCombo) Документация Knockout / Durandal, которую вы можете проверить на случай, если вы не сможете приспособить эту реализацию к своему проекту.

Другие вопросы по тегам