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; }