crossroads.js哈希错误
Hashing error with crossroads.js
我正在测试crossroad.js和hasher.js,以及第二个setHash调用上的以下代码错误,其中包含"Function.prototype.apply:argument不是Object"。这在IE和Chrome中都有。
crossroads.addRoute( 'lorem/{id}', function( id ) { alert( id ); } );
hasher.changed.add( crossroads.parse, crossroads );
hasher.init();
hasher.setHash('lorem/123'); // works with alert(123)
hasher.setHash('lorem/456'); // javascript error
我是不是做错了什么?第一个setHash显示警报罚款。
我发现了问题所在。crossroads.parse
对hasher.changed
信号的签名(request,defaultArgs)错误,不应该直接添加以下代码:hasher.changed.add(crossroads.parse, crossroads)
。如果我传入一个带有签名的代理方法(newHash,oldHash),它会起作用:
crossroads.addRoute( 'lorem/{id}', function( id ) { alert( id ); } );
var proxy = function( newHash, oldHash ) { crossroads.parse( newHash ); };
hasher.changed.add( proxy ); // Use to be hasher.changed.add( crossroads.parse, crossroads );
hasher.init();
hasher.setHash('lorem/123');
hasher.setHash('lorem/456');
它第一次工作的原因是没有oldHash
,所以也没有defaultArgs
。如果defaultArgs
为空,则在parse
方法的开头将其初始化为空数组。
但这有点太好了,因为现在我每个setHash
呼叫都会收到两个警报。
相关文章:
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 如何在浏览器重新加载时保存位置哈希状态
- jQuery scrollTop-哈希错误
- 动态添加哈希标记;t工作
- 在Javascript中实现对哈希值的暴力攻击
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- YouTube API v3哈希标签搜索错误结果
- 为什么使用CryptoJS的哈希计算会在Angular中导致$rootScope:infdig错误
- 返回哈希时出现意外的令牌 { 错误
- 将错误的哈希字符串发送到文本区域中的 sha256 所有行
- 哈希更改事件可能的错误
- 哈希:引用错误:未定义要求
- javascript哈希映射中的QML集成错误
- 结合哈希密码Node.JS时出现PBKDF2错误
- crossroads.js哈希错误
- 不选择器和哈希符号语法错误