これは、ko.applyBindings() で見つけた唯一の公式ドキュメントです。
http://knockoutjs.com/documentation/observables.html
これは、何がオプションかなどを正確に述べた正式な文書ではありません。テストでは、ko.applyBindings() を呼び出すと、グローバル スコープでバインディングが可能になり、正常に動作するように見えます。ソースコードを研究した人 (または私よりも KO について詳しい人) は、これが安全かどうかを知っていますか? パフォーマンスの問題はありますか?
これは、私が取り組んでいる SPA の「アプリ」オブジェクトの始まりです。
var app = {
self: this,
datacontext: new DataContext(),
dataservice: new DataService(),
viewModels: {
main: new MainViewModel(),
folderDetails: new FolderDetailsViewModel()
},
init: function() {
ko.applyBindings();
Sammy(function() {
this.get('#:folder', function() {
self.doFolderRoute(this.params.folder);
});
// Override this function so that Sammy doesn't mess with forms
this._checkFormSubmission = function(form) {
return (false);
};
}).run();
},
doFolderRoute: function(id) {
console.log("doFolderRoute: " + id);
}
}
ko.applyBindings(self.viewModels) を実行して、モデルへのデータ バインドを制限することもできますが、何にでもバインドできる自由が好きで、app を入力することも気にしません。私のコードのviewModels.mainと、単なる「メイン」です。