【发布时间】:2013-07-20 04:40:18
【问题描述】:
我有一个 KO 应用程序,我的每个页面都有一个单独的视图模型来处理该页面上所需的所有操作(加载、添加、编辑、删除等)。我已经设法使用 RequireJS 将代码拆分为多个模块,但我找不到使用 Sammy 让多个视图模型同时工作的方法。
这是我目前在我的init.js 文件中的设置,它将内容加载到第一页。它有效:
require(['jquery', 'ko', 'sammy', 'viewmodels/page1'], function($, ko, sammy, page1) {
var page1VM = new page1.ViewModel();
ko.applyBindings(page1VM);
var app = sammy('#wrapper', function() {
this.get('#page1', function() {
page1VM.loadContent();
});
this.get('#page2', function() {
// do nothing yet
});
[...]
this.get('#pageX', function() {
// do nothing yet
});
});
app.run('#page1');
});
如何将我的其他视图模型绑定到其他页面?
我还尝试为this.get 中的每个页面添加一个单独的ko.applyBindings,当我切换回已经应用了这些绑定的页面时,这会引发错误。
【问题讨论】:
-
您可能对 Durandal 感兴趣,它是一个框架,基本上为您将所有这些东西捆绑在一起。
标签: javascript knockout.js requirejs sammy.js