Ответ 1
Нокаут 2.0 имеет две функции, которые вы могли бы использовать для этой цели. ko.dataFor
и ko.contextFor
возьмите node и верните либо данные Knockout, которые будут доступны для привязки в этой области (dataFor), или весь контекст связывания в этой области (contextFor), который включает $data
, $parent
, $parents
и $root
.
Итак, вы можете сделать что-то вроде:
var isBound = function(id) {
return !!ko.dataFor(document.getElementById(id));
};
Вот пример: http://jsfiddle.net/rniemeyer/GaqGY/
Однако, в обычном сценарии вы должны действительно называть ko.applyBindings
один раз на своей странице. Это зависит от того, что вы пытаетесь выполнить. Взгляните на этот ответ за некоторыми предложениями о способах управления несколькими моделями просмотров: Пример шаблона knockoutjs для приложений с несколькими просмотрами.
Как правило, вы делаете <div data-bind="with: mySubModel">
и когда заполняется mySubModel
, тогда эта область появится и будет привязана.