Nor*_*ert 5 javascript sammy.js requirejs knockout.js
我有一个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');
});
Run Code Online (Sandbox Code Playgroud)
如何将其他视图模型绑定到其他页面?
我还尝试ko.applyBindings
为每个页面添加一个单独的内容this.get
,当我切换回已经应用了这些绑定的页面时,这会引发错误.
好吧,我回到小提琴并清理了所有代码,以有效地向您展示我的答案的含义 -
function myViewModel() {
var self = this;
self.message = "hey";
self.page1VM = new page1VM();
self.page2VM = new page2VM();
var app = sammy('#wrapper', function() {
this.get('#page1', function() {
page1VM .loadContent();
});
});
};
ko.applyBindings(new myViewModel());
Run Code Online (Sandbox Code Playgroud)
请记住,尽管在小提琴中我无法真正利用 Sammy.js (我不会更改视图或导航),并且基本上没有理由使用 Require.js 因为它只是一个示例,并且我放置了所有视图模型在同一个 JS 文件中。
由于您使用的是 Sammy 和 Require,因此您需要获取此代码并将其在功能上应用到您的网站,或者在某处发布更多代码。
归档时间: |
|
查看次数: |
858 次 |
最近记录: |