{{log}}
<!DOCTYPE html> <html> <head> <title>mmRouter组件</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width"> <link rel="stylesheet" href="ui/ex.css"> <script src="../avalon.js"></script> <script> require(["mmRouter/mmState", "loading/avalon.loading"], function() { var links = [], user = "list.person.info", address = "country.province.city.town.street.house.floor" var s = ["home", user, address] while(s.length) { var tmp = s[0].split(".") for(var i = 0; i < tmp.length; i++) { links.push(tmp.slice(0, i + 1).join(".")) } s.splice(0, 1) } var home = avalon.define("home", function(vm) { vm.logs = [] vm.links = links }) home.logs.$watch("length", function() { document.getElementById("log").scrollTop = 100000 }) avalon.state.config({ onLoad: function(from, to) { var me = to if(this.currentState && this.currentState.stateName == me.stateName) { loading = avalon.vmodels.loading if(loading) loading.toggle = false } home.logs.push(me.stateName + "执行完毕") } }) function onEnter() { var state = this.stateName, loading = avalon.vmodels.loading, me = this, done = arguments[arguments.length - 2] // 这个状态是异步,所有需要经由该状态的状态都会受影响 // 标记该状态是异步 home.logs.push(me.stateName + "正在等待中...") // if(loading) loading.toggle = true setTimeout(function() { // 告知done done && done() }, 2000) return false } avalon.each(links, function(index, state) { var tmp = state.split(".") tmp = "/" + tmp[tmp.length - 1] avalon.state(state, { controller: "home", views: {}, url: tmp, onAfterLoad: function() { }, onEnter: onEnter, onUpdate: function() { avalon.log(arguments) } }) }) avalon.router.errorback = function() { avalon.router.go("home", {}, {replace: true}) } avalon.config({debug: true}) //启动路由 avalon.history.start({ basepath: "/mmRouter", fireAnchor: false }) avalon.scan() }) </script> </head> <body ms-controller="home" ms-widget="loading,loading" data-loading-type="img" data-loading-modal-background="#ccc" data-loading-modal-opacity="0.5"> <h1>mmRouter:异步</h1> <div> <p ms-repeat-link="links"> <a ms-href="'#!/'+link.replace(/\./g,'/')">{{link}}</a> </p> </div> <div id="log" style="height:300px;overflow:scroll;"> <p ms-repeat-log="logs">{{log}}</p> </div> </body> </html>