- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始使用 KnockoutJS (2.2.1)、SammyJS (0.7.4) 和 PagerJS 的组合(最新来自 github 和 jquery hashchange)创建一个单页应用程序,我遇到了路由问题,因为它们在 Chrome 版本 24.0.1312.57 m 或 Firefox 16.0 中不起作用(由于某种原因,它实际上在 IE7 中工作) 。
使用 sammyjs,我指定了应用程序应使用react的路由及其相应的操作,例如加载用户数据。 pagerjs 中使用相同的路由来指定要显示的页面。由于某种原因,执行了 sammyjs 代码,但不执行 pagerjs 代码。
更新路线时,例如从#!/
转到#!/user
,pagerjs不会切换到新页面,但数据会更新为在 #!/user?uid=123
和 #!/user?uid=321
之间切换时预期。但是,当删除 sammyjs 代码时,它可以工作 - 页面之间的切换可以工作,但数据当然不会正确更新。
SammyJS 似乎终止了 pagerjs 的进一步执行,但由于我对这些库还很陌生,这很可能是我的代码行为不当。非常适合任何见解。
JavaScript 代码看起来像这样:
var UserModel = function () {
var self = this;
self.userId = null;
self.user = ko.observable();
self.userid = ko.observable();
// Load
self.load = function(userId) {
self.loadUser(userId);
};
// Load user data
self.loadUser = function(userId) {
console.log('Loading user data');
};
// Client-side routes
Sammy(function () {
// Overview - datatables in tabs
this.get('#!/', function () {
console.log('Start page');
});
// User - details
this.get('#!/user', function () {
console.log('user page');
self.userId = this.params.uid;
self.load(self.userId);
});
}).run();
}
// Renders user info
$(document).ready(function () {
if ($('#user-info').length) {
var userModel = new UserModel();
pager.extendWithPage(userModel);
ko.applyBindings(userModel);
// Load initial data via ajax
userModel.load();
pager.Href.hash = '#!/';
pager.startHashChange();
}
$('.dropdown-toggle').dropdown();
});
这里是带有 pagerjs 数据绑定(bind)的 HTML:
<div class="container">
<div data-bind="page: {id: 'start'}">
Startpage
</div>
<div data-bind="page: {id: 'user', params: ['uid']}">
User page
</div>
</div>
最佳答案
我想我明白了。
您需要添加
this.get(/.*/, function() {
console.log("this is a catch-all");
});
在您最后一次 this.get
之后。然后 Sammy 并没有停止该事件。
关于javascript - Sammyjs 和 pagerjs 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839337/
我想确定 sammyJS 路由是否是第一次执行(如浏览器刷新)或者是否在页面初始加载后访问该路由。 我的用例是,在某些情况下,当执行路由时,新内容不可见,因为用户已向下滚动页面。我想在用户已经加载页面
我正在使用 sammyJS 和 node.js 制作一个应用程序。问题是:根据文档,我可以在路由开头添加或不添加 # (/#/myroute/)。我所有的应用程序都是在没有尖锐的情况下构建的,现在我想
只是想知道是否有在 sammy js 路由中将参数指定为可选的。 我见过你可以用的地方 route/:foo/?:bar 这会让 sammy 认为 bar 是可选的。但是,如果您在没有提供 bar 的
我在将 Sammy 与 Angular 结合使用时遇到问题。 我有这个应用程序模块 var appModule = angular.module('myApp', []).run(function (
我用 SammyJs 构建了一个应用程序。它目前在浏览器中完美运行。但是,当我使用 PhoneGap 将其打包到 Android 时,路由不再有效。 我找到了 this SO question .但是
我在单页应用程序中使用 sammy.js 插件。该插件无法正常工作,每当用户尝试在页面中导航时,它都会在控制台上显示以下错误: [Tue Dec 04 2012 17:48:13 GMT+0530 (
我将 KnockoutJS 与 SammyJS 一起用于客户端模板和 Django 框架在我的应用程序的顶部栏中,有一个用于用户注销的下拉菜单。这是它的代码 -
我开始使用 KnockoutJS (2.2.1)、SammyJS (0.7.4) 和 PagerJS 的组合(最新来自 github 和 jquery hashchange)创建一个单页应用程序,我遇
有没有人有一个例子可以让 SammyJS json 商店演示的产品详细信息显示在像 FancyBox 这样的模态插件中? ? 这是来自 json 存储的代码块 - 我需要做什么才能在模型中呈现它 Fa
我不清楚我应该如何使用 sammyjs 从外部 API 加载 json。 这段代码效果很好: this.get('#/contact', function(context) { this
我有点麻烦让 sammyjs 与 requirejs 一起玩。调用 $.sammy 失败,错误提示 sammy 未在 jQuery 命名空间中定义。 这是我的需求配置 require.config
我定义了以下服务器端 URL 映射: /main/item1 /main/item2 我添加了 SammyJS 路由支持,以便我能够执行以下操作: /main/item1#/ /* m
我只是想知道是否有人使用 requireJS 设置了 SammyJS 以根据提供的哈希地址路由模块的创建? 这可能吗?有什么建议吗? 谢谢 最佳答案 在BoilerplateJS我们使用 crossr
我刚刚开始使用 KnockoutJS,我正在将它与 PagerJS、SammyJS 和 BootStrap 结合使用来构建单页应用程序,但我现在有点不知所措。 令我吃惊的是,我应该如何以一种简单且可重
我是一名优秀的程序员,十分优秀!