98国产在线视频福利_欧亚v视频日韩一区二区_国产在线精彩视频_亚洲伊人久久综合影院_亚洲欧美高清激情精品一区_少妇熟女天堂网av_午夜福利日本专区_中美女子成人毛片_大荫蒂毛茸茸视频国产_小14萝裸体自慰洗澡大尺度
登錄
注冊
關(guān)于我們
簡(jiǎn)體中文
ENGLISH
搜索
購物車(chē)
0 ITEMS ON YOUR CART
去購物車(chē)結算
合計:
¥0
首頁(yè)
動(dòng)態(tài)
方案
案例
專(zhuān)欄
期刊
聯(lián)系我們
首頁(yè)
期刊
[Ext JS6]路由(Routing)及使用
Ext JS開(kāi)發(fā)大全
第1章 Ext JS快速入門(mén)示例[4/4]
第12章[12.10]富文本編輯器 CKEditor與Ext JS的整合
第12章[12.10.1] Ext JS + CKEditor+Spring Boot 實(shí)現編輯器圖片上傳
第11章[11.6] Ext JS 自行搭建遠端庫的包升級版本后找不到的問(wèn)題解決
[Ext JS 4] 實(shí)戰之Grid, Tree Gird編輯
ext命令集
第12章[12.3] Ext JSGrid中的超鏈接列及其功能實(shí)現
[Ext JS]textfield添加compositionstart、compositionupdate 和compositionend _os
[Ext JS ] 動(dòng)添切換字段的必填與非必填
3.1 Ext JS 組件總覽
[Ext JS] Grid表格批量編輯的實(shí)現
Ext JS 快速開(kāi)發(fā)工具
帶觸發(fā)器按鈕的輸入框
Ext JS的布爾對象類(lèi)型處理及便捷方法
Ext JS的Object類(lèi)型處理及便捷方法
ExtJS RadioGroup(單選按鈕組) 使用及注意事項
Ext JS 模擬后端數據實(shí)現
ToolTip 實(shí)現全介紹
Ext JS下拉單選框(Combobox,TagFied)使用及疑難問(wèn)題解決
Ext JS應用測試概覽
Sencha Studio 監視工具( Inspect Tool)
Ext JS 4 升級指南
Ext JS 如何定義公用方法(單例類(lèi) or 靜態(tài)方法)
Ext JS的模塊化開(kāi)發(fā)(Package)
Ext3 -- Form 實(shí)例。 用來(lái)migrate file 數據到DB用的
ExtJS 3 在Tab下加入Form 實(shí)例
Extjs Grid 中給已經(jīng)添加過(guò)Filter的列增加標識
Extjs 實(shí)戰之 Ext.tree.TreePanel Tree無(wú)法顯示
Extjs彈出框的異步執行
Grid 動(dòng)態(tài)該表列( reconfigure)的性能改善
Spring Boot Ext JS準前后端框架應用的會(huì )話(huà)(Session)處理
[Ext JS 4] Extjs 圖表 Legend(圖例)的分行與分列顯示
[Ext JS 4] Extjs 之 initComponent 和 constructor的區別
[Ext JS 4] Grid 中的單元格添加Tooltip 的效果
[Ext JS 4] Grid 實(shí)戰之分頁(yè)功能
[Ext JS 4] Grid 組件
[Ext JS 4] MVC 應用程序框架
[Ext JS 4] MVC 應用程序框架
發(fā)布 [Ext JS 4] contentEL,renderTo, applyTo 釋義與區別
[Ext JS 4] 動(dòng)態(tài)加載
[Ext JS 4] 實(shí)戰之 ComboBox 和 DateField (消失之解決辦法)
[Ext JS 4] 實(shí)戰之 Picker 和 Picker Field
[Ext JS 4] 實(shí)戰之 帶week(星期)的日期選擇控件(二)
[Ext JS 4] 實(shí)戰之 ComboBox 和 DateField 的點(diǎn)擊事件在IE下失效
## [Ext JS 4] 實(shí)戰之 帶week(星期)的日期選擇控件(三)
[Ext JS 4] 實(shí)戰之 帶week(星期)的日期選擇控件
[Ext JS 4] 實(shí)戰之Chart 坐標控制(單坐標,雙坐標)
[Ext JS 4] 實(shí)戰之Chart, Column Chart 定制顏色
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加列
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加列續(性能考慮)
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 動(dòng)態(tài)添加行
[Ext JS 4] 實(shí)戰之Grid, Tree Gird 添加按鈕列
[Ext JS 4] 實(shí)戰之Grid, Tree Gird編輯Cell
[Ext JS 4] 實(shí)戰之Load Mask - 在Grid Reconfigure的使用狀況
[Ext JS 4] 實(shí)戰之Load Mask(加載遮罩)的顯示與隱藏
[Ext JS 4] 實(shí)戰之多選下拉單 (帶checkbox) 續 - 帶ALL 選項
[Ext JS 4] 實(shí)戰之多選下拉單 (帶checkbox)
[Ext JS 4] 實(shí)戰之升級系列一[Ext jS 3-->Ext JS 4]
[Ext JS 4] 實(shí)戰之將chart導出為png, jpg 格式的文件
[Ext JS 4] 實(shí)戰之瀏覽器兼容
[Ext JS 4] 布局之實(shí)戰二 - 中間區塊不會(huì )自動(dòng)伸展 (tab)續
[Ext JS 4] 組件之圖表
[Ext JS 4]后臺自動(dòng)產(chǎn)生圖檔
[Ext JS 4]性能優(yōu)化
[Ext JS 7 ]7.5 自適應配置 - Responsive Configs
[Ext JS 7] 關(guān)聯(lián)(Association)
[Ext JS 7]事件(Event)
[Ext JS 7]ClassRequire錯誤解決
[Ext JS 7]的開(kāi)發(fā)模式
[Ext JS 7]基于NPM的開(kāi)發(fā)
[Ext JS ] 動(dòng)添切換字段的必填與非必填
[Ext JS4] 數據包
[Ext JS4系列]Ext JS4 入門(mén)
[Ext JS6] Grid不同列的關(guān)聯(lián)編輯
[Ext JS6] ViewControllers-視圖控制器
[Ext JS6]Ext.Template
[Ext JS6]Sencha Cmd
[Ext JS6]編碼規范
[Ext JS6]多類(lèi)型設備開(kāi)發(fā)
[Ext JS6]工作區-Workspace
[Ext JS6]路由(Routing)及使用
[Ext JS6]視圖模型和數據綁定
[Ext JS6實(shí)戰] Ajax獲取Tree Store
[Ext JS6實(shí)戰] Ext.XTemplate
[Ext JS6實(shí)戰]動(dòng)態(tài)數據綁定
[Ext JS] Sencha Cmd命令參考之二
[Ext JS] Sencha Cmd命令參考之一
[Ext JS] Group Grid-分組網(wǎng)格
[Ext JS] Group Grid-分組網(wǎng)格
[Ext JS]嵌套Grid的實(shí)現及注意事項
[Ext JS]SimXhr.js__dc=1659315492151_65 Uncaught TypeError問(wèn)題分析與解決
[Ext JS]Sencha Studio安裝與快速介紹之一
[Ext JS]textfield 添加 compositionstart、compositionupdate 和 compositionend
[Ext JS]圖片顯示方式
[ExtJS 6]Grid分頁(yè)工具欄無(wú)效問(wèn)題解決
[ExtJS6]ResponsiveColumn-自適應列布局
[Extjs 4] 類(lèi)系統
基于Ext JS的模塊化應用框架搭建及開(kāi)發(fā)
[Ext JS] 自行搭建遠端庫的包升級版本后找不到的問(wèn)題解決-The following versions are available
[Ext JS]鼠標移入移除時(shí)彈出和關(guān)閉窗口
[Ext JS]富文本編輯器 CKEditor與Ext JS的整合
[Ext JS]可編輯列Grid的全場(chǎng)景開(kāi)發(fā)
['Ext JS]Grid中的超鏈接列及其功能實(shí)現
[Ext JS]Ext JS + CKEditor+Spring Boot 實(shí)現編輯器圖片上傳
[Ext JS]介紹與快速入門(mén)1
[Ext JS]實(shí)現帶動(dòng)態(tài)數字的圖標
Spring Boot+Ext JS 實(shí)現圖形驗證碼
Ext JS介紹與快速入門(mén)2
Ext JS開(kāi)發(fā)基本環(huán)境準備與項目創(chuàng )建
[Ext JS]開(kāi)發(fā)模式及快速測試方式
[Ext JS]多類(lèi)型終端-電腦、移動(dòng)端(手機、平板)
[Ext JS]基于Ext JS的MVC/MVVM架構的應用開(kāi)發(fā)模式
[Ext JS]Ext JS的類(lèi)與類(lèi)體系
[Ext JS]Ext JS組件、容器與布局
[Ext JS]組件與容器的選擇與開(kāi)發(fā)
[Ext JS]Ext JS數據模型與數據封裝
[Ext JS]Ext JS的控制器類(lèi)型及使用
[Ext JS]說(shuō)透Ext JS的窗口及對話(huà)框用法
[Ext JS]說(shuō)透Ext JS的窗口及對話(huà)框用法
[Ext js]Grid行選擇的多種場(chǎng)景和實(shí)現方式
[Ext JS]Ext JS類(lèi)的繼承與混合
CmsWing
[Ext JS6]路由(Routing)及使用
## [Ext JS6]路由(Routing)及使用 ## 在應用中使用路由(Routing) 在一般的網(wǎng)友中, 點(diǎn)擊一個(gè)link轉到一個(gè)新的頁(yè)面。 但是在單頁(yè)面的應用中,不會(huì )載入新頁(yè)面,只是和當前頁(yè)面的組件交互。如何使用瀏覽器的前進(jìn)/后退功能,就是 Ext Js5開(kāi)始的路由功能了。 路由可以追蹤應用的瀏覽器歷史記錄,可以可以直接鏈接到應用中的某個(gè)部分。這對于將app加到書(shū)簽和發(fā)送連接的場(chǎng)景非常有用。 但是路由不能保存數據和 Session,數據需要存儲在類(lèi)似cookie或是本地存儲中。路由僅用來(lái)追蹤應用的狀態(tài)。 哈希 https://www.example.com/apps/users#user=1234 user=1234稱(chēng)作哈希。 哈希變化的時(shí)候, 瀏覽器會(huì )添加到歷史記錄??梢允褂们斑M(jìn)\后退按鈕。 ### 應用路由的實(shí)現方式 Router類(lèi)是在Ext JS 5中新增的, 用它來(lái)處理應用中的哈希變化。Ext.util.History用來(lái)配合哈希的變化。路由是與哈希匹配的字符串,允許在Ext應用程序中進(jìn)行深層鏈接??匆粋€(gè)實(shí)例: ```javascript Ext.define('MyApp.view.main.MainController', { extend : 'Ext.app.ViewController', routes : { 'users' : 'onUsers' }, onUsers : function () { //... }}); ``` 這個(gè)路由會(huì )響應#users哈希, 并且執行onUsers方法。 ### 更新哈希 控制器有提供redirectTo方法來(lái)更新哈希。 this.redirectTo(‘user/1234’); redirectTo還可以設置選項: force -如果為true,即使地址欄中的哈希值與傳遞給redirectTo的哈希值相同,這也會(huì )強制路由器做出反應。 replace -默認情況下,將更改散列并創(chuàng )建瀏覽器歷史記錄中的新條目。 這意味著(zhù)瀏覽器的后退按鈕可以返回到前一個(gè)哈希。 如果為true,則瀏覽器歷史記錄中的當前條目將替換為傳遞給redirectTo的哈希。 默認令牌-Token 在/app/view/Application.js添加defaultToken配置 ```javascript Ext.define('MyApp.Application', { extend : 'Ext.app.Application', //... defaultToken : 'home' }); ``` 這里會(huì )使用#home 啟動(dòng)應用程序時(shí),它將檢查URI的當前哈希值。 如果定義了哈希,它將執行路由處理程序。 如果沒(méi)有找到散列,它將添加#home散列,并且將執行任何路由處理程序以適當地處理它。 ### 帶參數的哈希 ```javascript Ext.define('Extjs6App.view.main.MainController', { extend: 'Ext.app.ViewController', alias: 'controller.main', routes : { 'user/:id' : 'onUser' }, onItemSelected: function (sender, record) { Ext.Msg.confirm('Confirm', 'Are you sure?', 'onConfirm', this); }, onConfirm: function (choice) { if (choice === 'yes') { // } }, onUser: function(id){ Ext.Msg.alert('Route', 'routes is user/'+id); }}); ``` 在控制器中加入routes, 在瀏覽器輸入 http://localhost:1841/#user/1234, 效果就是會(huì )彈出對話(huà)框。 最重要的效果是如果輸入http://localhost:1841/#user/12345 之后, 可以使用瀏覽器的后退按鈕回到之前的頁(yè)面了。 ### 哈希參數的格式 使用conditions設置參數的格式: ```javascript Ext.define('MyApp.view.main.MainController', { extend : 'Ext.app.ViewController', routes : { 'user/:id' : { action : 'onUser', conditions : { ':id' : '([0-9]+)' } } }, onUser : function (id) { //... }}); ``` ### 路由的處理 有時(shí)候需要阻止路由的處理。比如當前用戶(hù)是否有權限查看應用程序的某些部分??梢耘渲胋efore 用來(lái)停止當前或所有路由, 或者繼續執行。 ```javascript Ext.define('MyApp.view.main.MainController', { extend : 'Ext.app.ViewController', routes : { 'user/:id' : { before : 'onBeforeUser', action : 'onUser' } }, onBeforeUser : function (id, action) { Ext.Ajax.request({ url : '/security/user/' + id, success : function() { action.resume(); } }); }, onUser : function (id) { //... }}); ``` onBeforeUser的一個(gè)參數是id , 第二個(gè)參數是 action, 執行 action的 resume方法繼續執行。停止路由, ```javascript onBeforeUser : function (id, action) { Ext.Ajax.request({ url : '/security/user/' + id, success : function () { action.resume(); }, failure : function () { action.stop(); } }); }, ``` ### 處理沒(méi)有匹配的路由 如果修改哈希沒(méi)有找到對應的路由, 就會(huì )觸發(fā)unmatchedroute?事件 ```javascript Ext.application({ name : 'MyApp', listen : { controller : { '#' : { unmatchedroute : 'onUnmatchedRoute' } } }, onUnmatchedRoute : function (hash) { //... }}); ``` 也可以觸發(fā)一個(gè)全局的事件: ```javascript Ext.application({ name : 'MyApp', listen : { global : { unmatchedroute : 'onUnmatchedRoute' } }, onUnmatchedRoute : function (hash) { //... }}); ``` 還可以直接使用 Ext的事件 ```javascript Ext.on('unmatchedroute', function (hash) { //...}); ``` ### 在單個(gè)哈希使用多個(gè)路由 使用管道分割符: | user/1234|messages 就會(huì )同時(shí)執行兩個(gè)路由了。 這個(gè)默認分割符也可以通過(guò)Ext.route.Router.multipleToken修改。 路由的名字也可以修改 ```javascript routes: { 'bar' : 'onBar', 'baz' : { action : 'onBaz', name : 'bazRoute' }, 'foo' : 'onFoo' } ``` 初始哈??梢酝ㄟ^(guò)首先傳遞一個(gè)字符串來(lái)設置 ```javascript this.redirectTo(‘foo’); ``` 如果再加一個(gè)的話(huà) ```javascript this.redirectTo({ bar : 'bar'}); ``` 就是疊加了, 哈希是#foo|bar. 如果已存在的就是替換 ```javascript this.redirectTo({ foo : 'foober'}); ``` 變成: ?#foober|bar Hashbang?的支持 Hashbang?會(huì )在#之后多一個(gè) ! 設置方式 Ext.util.History.hashbang = true; 在 Ext.application({ name : 'MyApp', router : { hashbang : true }}); 也可以這樣設置: Ext.route.Router.setHashbang(true); 暫停和恢復路由 一個(gè)常見(jiàn)的用例是在應用程序啟動(dòng)時(shí)延遲執行路由,直到用戶(hù)檢驗完成。 ```javascript Ext.application({ name : 'MyApp', defaultToken : 'home', launch : function () { var me = this; Ext.route.Router.suspend(); me.checkUserSession().then(me.onUser.bind(me), me.onUserError.bind(me)); }, onUser : function (user) { MyApp.$user = user; Ext.route.Router.resume(); }, onUserError : function (error) { // handle error // do not execute queued hash changes Ext.route.Router.resume(true); this.redirectTo('login'); }}); ```
← 上一篇:工業(yè)ERP系統五十問(wèn)...
下一篇:科學(xué)管理與信息化建設【第4期】裝配式建筑... →
網(wǎng)站導航
首頁(yè)
動(dòng)態(tài)
方案
案例
專(zhuān)欄
期刊
聯(lián)系我們