Javascript 将PagerJS与History.js正确集成
我正在尝试使用Knockout、pagerjs和history.js建立一个水疗中心。但是,当我单击包含Javascript 将PagerJS与History.js正确集成,javascript,knockout.js,single-page-application,history.js,pagerjs,Javascript,Knockout.js,Single Page Application,History.js,Pagerjs,我正在尝试使用Knockout、pagerjs和history.js建立一个水疗中心。但是,当我单击包含数据绑定=“'page-href':'/somepath'”的链接时,我得到一个JS错误: 对象函数History(){[native code]}没有方法“pushState” 这将向我表明我初始化PagerJ的方式不正确,但我认为我正确地遵循了演示。以下是我初始化pagerjs的方式: define(['knockout', 'pager', 'history'], function (k
数据绑定=“'page-href':'/somepath'”
的链接时,我得到一个JS错误:
对象函数History(){[native code]}没有方法“pushState”
这将向我表明我初始化PagerJ的方式不正确,但我认为我正确地遵循了演示。以下是我初始化pagerjs的方式:
define(['knockout', 'pager', 'history'], function (ko, pager, history) {
// [define my view model]
pager.useHTML5history = true;
pager.Href5.history = history;
pager.extendWithPage(viewModel);
// [apply bindings]
pager.start();
});
为了使history.js能够作为AMD模块加载,我在history.js的底部添加了以下内容:
// [original history.js code]
define(function() { return History; });
但是,我注意到History
没有pushState
方法,这是pagerjs试图调用的方法
集成pagerjs和history.js的正确方法是什么?谢天谢地,我发现了。以下是我学到的:
来指定您的基本URLhistory.js
文件,而应该使用jquery.history.js
捆绑包pager.start()
,而是使用pager.startHistoryJs()
define(['knockout', 'pager', 'history'], function (ko, pager, history) {
var viewModel = /* [Create my view model] */;
pager.useHTML5history = true;
pager.Href5.history = history;
pager.extendWithPage(viewModel);
ko.applyBindings(viewModel);
pager.startHistoryJs();
});
下面是我如何修改jquery.history.js的:
define(['jquery'], function () {
// [Original code]
return History;
});