我正在使用Require.js、Pager.js和History.js建立一个新的淘汰赛网络应用程序。我已经设置了初始化根据医生的说法,但是当我调用pager.startHistoryJs()时,从Pager.js收到了一个“无法获得未定义或空引用的属性‘绑定’”错误。
下面是我的Require.js配置:
require.config({
paths: {
'knockout': '/scripts/lib/knockout-3.2.0',
'jquery': '/scripts/lib/jquery-1.11.2.min',
'text': '/scripts/lib/text',
'pager': '/scripts/lib/pager.min',
'history': '/scripts/lib/history'
},
shim: {
'pager': ['jquery', 'knockout'],
'history': ['jquery', 'pager', 'knockout'],
},
waitSeconds: 0
});下面是我的Require.js初始化脚本:
require(['knockout', 'viewmodel/appViewModel', 'jquery', 'pager', 'history', 'lib/domReady!'], function (ko, appViewModel, $, pager) {
pager.useHTML5history = true;
pager.Href5.history = History;
var viewModel = new appViewModel();
pager.extendWithPage(viewModel);
ko.applyBindings(viewModel);
pager.startHistoryJs();
});抛出错误的这是Pager.js中的一行 (第1497行):
// Bind to StateChange Event
pager.Href5.history.Adapter.bind(window, 'statechange', function () {
var relativeUrl = pager.Href5.history.getState().url.replace(pager.Href5.history.getBaseUrl(), '');
goTo(relativeUrl);
});我错过了哪一件?我还没有找到很多关于这个错误的相关信息。
发布于 2015-01-09 17:22:20
所获得的错误与没有加载适配器的情况下加载History.js是一致的。如果我查看history.js中的代码,我会发现如果没有可用的适配器,init函数将默默地返回false,History.js也不会被初始化。
我建议加载jQuery适配器并使history依赖于它。
发布于 2015-01-09 15:17:56
在require函数中,您似乎缺少了History (可能还有lib/domReady!)参数。
require(['knockout', 'viewmodel/appViewModel', 'jquery', 'pager', 'history', 'lib/domReady!'], function (ko, appViewModel, $, pager, History, domReady) {
pager.useHTML5history = true;
pager.Href5.history = History;
var viewModel = new appViewModel();
pager.extendWithPage(viewModel);
ko.applyBindings(viewModel);
pager.startHistoryJs();
});https://stackoverflow.com/questions/27863601
复制相似问题