2012-11-07 4 views
0

Вместо того, чтобы использовать ko.applyBindings(new SomeClass()); для активации knocokout в классе, могу ли я использовать ko.applyBindings(this); в конструкторе SomeClass? Я считаю, что плохой ООП, по моему мнению, должен применять его вне класса. Не было бы лучше определить в классе, что он должен делать?активировать нокаут внутри конструктора

ответ

2

Если SomeClass является конструктором вашей общей модели просмотра, и вы не собираетесь создавать несколько экземпляров SomeClass, тогда вы можете позвонить ko.applyBindings из конструктора.

Вызов ko.applyBindings Несколько раз на одних и тех же элементах есть некоторые плохие побочные эффекты (множественные привязки + множественные обработчики событий), поэтому вы должны быть осторожны, чтобы вы только звонили, или называть его прохождением разных элементов DOM корень как второй аргумент.

+0

Я попробовал это на сайте learn.knockoutjs.com, и это не сработало. не могли бы вы показать мне скрипку, где она работает? – LordZardeck

+0

Вот пример: http://jsfiddle.net/rniemeyer/HAzyW/. Вам все равно нужно создать экземпляр типа. –

+0

сладость! Благодарю. – LordZardeck

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