1, 直接使用avalon的 amd加载器, 能够不须要 require.jsjavascript
2, 配置baseUrl 路径, 这个必定要在 js所在的目录, 而不是jsp所在的目录, 若是js 和jsp分开 html
能够用 window.location.protocol + "//" + window.location.host 来获取网站资源路径java
require 和 define 的依赖路径, 都是在baseUrl目录下面去找的ajax
3, avalon 的 define 依赖项不执行, 多是由于没有过 require一次, 浏览器
因此在页面上应该先调用一次 require('../router.js' ,function(router){ router.init() } )jsp
4, 路由去下载templateUrl 的路径是根据 ajax去获取的, 在获取的时候没有根据 baseUrl 去组装网站
js是根据 baseUrl 去组装下载ui
这样的话, 就会根据浏览器的url去获取资源, 会可能出现错误, 由于html通常也和js一个地方url
因此templateUrl 须要从新组装spa
avalon.state("sponseMeet", { url: "/", abstract: true, // 抽象状态,不会对应到url上 views: { "": { templateUrl: baseUrl + "/html/sponseMeet.html", // 指定模板地址 controllerUrl: "./js/sponseMeet.js" // 指定控制器地址 } } })
5, 这里的 sponseMeet 表示路由的名称
url:"/" 表示这个路由在浏览器的显示形式 是 这样的 www.aa.com.. #!/
在路由须要 avalon.router.go("sponseMeet") 才会进入这个页面
avalon.history.start({ // basepath: "/mmRouter", fireAnchor: false }) //go!!!!!!!!! avalon.scan(); avalon.router.errorback = function() {avalon.router.go("sponseMeet");} avalon.router.go("sponseMeet");
abstract: true 表示抽象模板, 不能被激活(除非这个view是根路径), 但他的子模板能够被激活,
抽象模板能够提供一个多个有名的模板, 或者它能够传递做用域的变量给子模板
因此在根目录以外的路由, 若是也写abstract 为true, 是不会跳转的
6, avalon.router.errorback = function() {avalon.router.go("sponseMeet");}
这个配置是防止浏览器url被改, 或者出错的时候 , 直接跳到首页 , sponseMeet 这里就是首页的东西
7, smartGrid 参数传值挺麻烦,
opertes: function(vmId, field, index, cellValue, rowData) { var tags = '<a href="javascript:;" ms-click="removeMember(\''+ rowData.phone +'\')" >移除</a> '; var opyin = rowData.speakStatus == 'Speak' ? '开启静音' : '取消静音' // 使用JSON.stringify 报错, 使用 ',' 报错 tags += '<a href="javascript:;" ms-click="openQuiet(\''+ rowData.phone + ' ' + rowData.speakStatus +'\')" >'+opyin+'</a> '; return tags; }