2013-11-21 5 views
1

Я использую Select2.js, KnockoutJs, Дюрандаль 2.0Select2.js не работает в выпадающем списке

var ViewModel = 
    [ 
     { id: "AL", text: "Alabama" }, 
     { id: "AK", text: "Alaska" }, 
     { id: "AZ", text: "Arizona" }, 
     { id: "AR", text: "Arkansas" }, 
     { id: "CA", text: "California" }, 
     { id: "CO", text: "Colorado" } 
    ] 
var stateQuery = function (query) { 

    var states = []; 
    ko.utils.arrayForEach(states, function (state) { 
     if (state.text.search(new RegExp(query.term, 'i')) >= 0) { 
      states.push(state); 
    } 
    }); 

В то время как связывание в ниспадающего он работает fine.But, если я изменить текст к TEXT_NAME я am getting не может преобразовать в upperCase неопределенного.

var ViewModel = 
    [ 
     { id: "AL", Text_Name: "Alabama" }, 
     { id: "AK", Text_Name: "Alaska" }, 
     { id: "AZ", Text_Name: "Arizona" }, 
     { id: "AR", Text_Name: "Arkansas" }, 
     { id: "CA", Text_Name: "California" }, 
     { id: "CO", Text_Name: "Colorado" } 
    ] 

ответ

1

Это соглашение select2. See the documentation:

Реализация по умолчанию ожидает, что объект имеет свойство текста , который возвращается.

Чтобы изменить это поведение, вы должны указать функции formatResult и formatSelection и указать новый текст свойства:

function format(item) { 
    return item.Text_Name 
} 

Если вы используете Нокаут связывания обработчика:

<select data-bind="options: states, optionsValue: 'id', optionsText: 'text', value: states, select2: { formatSelection: format, formatResult: format }"></select> 
+0

Привет ТНХ Margabit его отливка. Но функция поиска - nt wrkng. Мой html выглядит следующим образом: King

+0

Пожалуйста, задайте другой вопрос с этой новой проблемой, чтобы мы могли написать правильный ответ;) – margabit

Смежные вопросы