mmRouter:登录跳转
<!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>
var arr = "doublelist flipswitch loading menu progressbar scrollbar scrollspy tab tooltip tree dragsort treeMunu mmPromise".split(" ")
require(["mmRouter/mmState", "dialog/avalon.dialog", "dropdownlist/avalon.dropdownlist"], function() {
var home = avalon.define("home", function(vm) {
vm.user = {
username: "",
pwd: ""
}
vm.dropdownlist1 = {
textbox: {
placeholder: "请输入组件名字"
},
data: arr
}
vm.admin = {
username: "skipper",
pwd: "123"
}
vm.isLogin = function() {
if(!vm.user.username || !vm.user.pwd) {
avalon.router.go("login", {query: {
jumpUrl: encodeURIComponent(location.hash)
}}, {replace: true})
return false
}
}
vm.uis = arr
vm.page = ""
}),
currentState,
// 登录
login = avalon.define("login", function(vm) {
vm.login = function(e) {
e.preventDefault()
if(home.user.username && home.user.pwd) {
avalon.vmodels.dialogName.toggle = false
if(currentState && currentState.query) {
var jumpUrl = currentState.query.jumpUrl
if(jumpUrl) {
jumpUrl = decodeURIComponent(jumpUrl)
jumpUrl = jumpUrl.replace(avalon.history.prefix, "")
return avalon.router.navigate(jumpUrl)
}
}
avalon.router.go("user.developer", {
username: home.user.username,
pwd: home.user.pwd,
isAdmin: home.user.username == home.admin.username && home.user.pwd == home.add.pwd
})
return
}
alert("请输入用户名和密码")
}
})
avalon.state("home", {
url: "/",
controller: "home",
views: {
"": {
templateUrl: "ui/home.html"
}
},
onEnter: function() {
}
})
avalon.state("login", {
controller: "home",
url: "/login",
views: {
"login" : {
templateUrl: "ui/login.html"
}
},
onBeforeEnter: function() {
if(avalon.vmodels.dialogName) {
avalon.vmodels.dialogName.toggle = true
return false
}
},
onEnter: function() {
},
onAfterLoad: function() {
if(avalon.vmodels.dialogName) avalon.vmodels.dialogName.toggle = true
}
})
avalon.state("user", {
controller: "home",
url: "/user",
views: {
"user": {
templateUrl: "ui/user.html"
}
},
onBeforeEnter: home.isLogin
})
avalon.state("user.developer", {
controller: "home",
url: "/developer/:username",
views: {
"uilist": {
templateUrl: "ui/list.html"
}
},
onEnter: function() {
home.user.username = this.params.username
home.user.pwd = this.params.pwd
}
})
avalon.state.config({
onLoad: function() {
currentState = this.currentState
home.page = currentState.stateName
},
onError: function(e, state) {
avalon.log(e.error)
}
})
//启动路由
avalon.history.start({
basepath: "/mmRouter",
fireAnchor: false
})
avalon.scan()
})
</script>
</head>
<body ms-controller="home">
<h1>mmRouter:登录跳转</h1>
<div>
<a href="#!//">Home</a>
<div
ms-visible="page=='home'" ms-view=""></div>
<div
ms-visible="page=='login'" ms-view="login"></div>
<div
ms-visible="page=='user.developer'" ms-view="user"></div>
<div class="clr"></div>
</div>
</body>
</html>