avalon 路由問題

 

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>&nbsp;&nbsp;&nbsp;&nbsp;';
                            var opyin = rowData.speakStatus == 'Speak' ? '開啓靜音' : '取消靜音'
                             
                 // 使用JSON.stringify 報錯, 使用  ',' 報錯
                            tags += '<a href="javascript:;" ms-click="openQuiet(\''+ rowData.phone + ' ' + rowData.speakStatus +'\')" >'+opyin+'</a>&nbsp;&nbsp;&nbsp;&nbsp;';
                           
                        
                            return tags;
                        }
相關文章
相關標籤/搜索