2013-12-13 2 views
-1

Я использую TypeScript и Knockout в моем проекте MVC, в моем файле .ts я реализовал класс viewmodel и еще 2 класса под модулем, а также я использую jquery под $ (document) .ready. Теперь моя проблема в том, что я хочу применить привязку, если я реализую ko.applyBindings (viewModel) в одном месте под классом, он получает заданные значения, но когда я меняю свои текстовые поля и выпадающие значения, он никогда не устанавливает b/c ko.applyBindings (viewModel) не применяя снова.Лучшее место для реализации ko.applyBindings

Не знаете, где я должен реализовать ko.applyBindings (viewModel), пожалуйста, дайте мне идею или место, где я буду реализовывать.

Благодаря

ответ

3

The ko.applyBinding должен вызываться один раз для разметки.

Таким образом, если у вас есть страница с некоторыми креплениями как

<input data-bind="value: vmtext"> 

Вы можете позвонить ko.applyBinding в нижней части страницы или на domready события в любом месте.

Не стоит забывать, что, чтобы сделать два-способы привязки работы нужно ko.observable в виртуальной машине, как:

var vm = { 
    vmtext: ko.observable("initial value") 
}; 
ko.applyBindings(vm); 

Если вы добавите некоторую разметку позже во время работы (например, загрузить частичный вид разметки асинхронно) , вам также нужно применитьBindings для создания привязок.

+0

спасибо, что это сработало. – BraveBoy

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