【发布时间】:2014-05-05 20:48:12
【问题描述】:
我正在构建一个具有以下结构的 SPA 应用:
<body>
<!-- Main Container for our application -->
<div id="main">
</div>
<!-- End Main Container -->
<!-- Vendor Libraries -->
<script src="js/vendor/jquery/jquery-1.11.0.min.js"></script>
<script src="js/vendor/knockout/knockout-3.1.0.js"></script>
<script src="js/vendor/sammy/sammy-latest.min.js"></script>
<!-- Models -->
<script src="js/models/model1.js"></script>
<!-- ViewModels -->
<script src="js/viewmodels/viewModel1.js"></script>
<script src="js/viewmodels/viewModel2.js"></script>
<!-- App scripts -->
<script src="js/routes.js"></script>
<script src="js/app.js"></script>
</body>
html 文件有一个div,它将保存由 Sammy.js 处理的每个相应页面的 html,代码如下:
Sammy('#main', function() {
this.get('#/', function(context) {
context.$element().load('views/main1.html', function() {
ko.applyBindings(new ViewModel1(), $("#home")[0]);
});
});
this.get('#/text', function(context) {
context.$element().load('views/text.html', function() {
ko.applyBindings(new ViewModel2(), $("#home")[0]);
});
});
this.get('', function(context) {
this.redirect('#/');
});
}).run();
每次我加载在每个 html 文件中找到的标记,然后应用我的视图模型。
我的问题是:
- 除了使用 jquery load() 之外,您能否建议任何其他可能的方式来加载标记。
- 是否每次调用新路由时都会释放我的旧绑定?
【问题讨论】:
标签: javascript jquery knockout.js knockout-2.0 sammy.js