Open RubyLouvre opened 8 years ago
/** @interface avalon.router.go 跳转到一个已定义状态上,params对参数对象
* @param toName 状态name
* @param params 附加参数
* @param params.query 在hash后面附加的类似search的参数对
* @param options 扩展配置
* @param options.reload true强制reload,即便url、参数并未发生变化
* @param options.replace true替换history,否则生成一条新的历史记录
* @param options.confirmed true不触发onBeforeUnload,$onBeforeUnload,onBeforeExit
*/
avalon.router.go = function (toName, params, options) {
var from = mmState.currentState,
to = StateModel.is(toName) ? toName : getStateByName(toName)
if (to) {
var toParams = avalon.mix(true, {}, to.params, params || {})
mmState.transitionTo(from, to, toParams, options)
}
}
// 事件管理器
var Event = window.$eventManager = avalon.define({
$id: "$eventManager",
$flag: 0,
uiqKey: function () {
return "flag" + (++Event.$flag)
}
})
Event.$watch("onAbort", function(){
var nodes = mmState.oldNodes
for(var i = 0, node; node = nodes[i++];){
node.parentNode && node.parentNode.removeChild(node)
}
mmState.oldNodes = []
})
//从params中抽取hash
urlFormate: function (url, params, query) {
var query = query ? queryToString(query) : "",
hash = url.replace(placeholder, function (mat) {
var key = mat.replace(/[\{\}]/g, '').split(":")
key = key[0] ? key[0] : key[1]
return params[key] !== undefined ? params[key] : ''
}).replace(/^\//g, '')
return {
path: hash,
query: query
}
},
为什么单独列出来,怎么没有合并到库