<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## Data組件基礎04:Tree、主從數據、更新模式 **一、樹型數據** 下面介紹一下Data組件的樹型數據特性 Data的數據是按行(Row)存儲進行存儲的,當然樹型數據也是按行(Row)存儲,只是針對樹特點在Row上增加了rows存放子行 rows : [ { rows: [...], ... },... ] **1、Data組件樹相關屬性** isTree : boolean 樹型數據標識 treeOption :Object 樹型數據相關參數 包括屬性: parentRelation: 父關系,形成父子樹的父關系 rootFilter: 根過濾條件,當設置時樹形數據將按節點加載數據 delayLoad: 延遲數據加載,默認值為true nodeKindRelation: 節點類型關系,data操作時使用指定relation自動記錄是否葉子節點信息 **2、Data組件樹相關api** Data.getTreeOption();——–獲取樹的定義信息,返回TreeOption TreeOption包括屬性: isDelayLoad 數據分級加載,進入葉子節點進行數據加載 parentRelation 父關系,形成父子樹的父關系 rootFilter 根過濾條件,當設置時樹形數據將按節點加載數據 nodeKindRelation 節點類型關系,data操作時使用指定relation自動記錄是否葉子節點信息 可以直接修改TreeOption相關屬性影響Data Data.isTree();——–判斷當前data是不是tree數據,返回Boolean Data.isLeaf(Row);——–判斷給定行是不是葉子節點,受TreeOption.nodeKindRelation影響,返回Boolean,參數Row為Data.Row Row.parent();——–行數據的parent對象,當是樹形數據時有效 Row.children();——–獲取行數據的子數據,但沒有時返回undefined Row.hasChildren();——–行數據是否有子數據 Data.each(callback);Data.eachAll(callback);——–當data為tree數據時,callback遍歷回調函數的參數中parent給出父Row 另外參數部分給出parent參數的函數都是支持tree數據的,即:函數執行范圍在parent下,默認當沒有給出parent時指tree的根數據,如: Data.loadData(data,append,parent)加載數據到parent下 Data.add(defaultValue,parent)增加數據到parent下 Data.newData(option)新增數據到option.parent下 Data.getCount(parent)獲取parent下行記錄數 Data.getTotal(parent)獲取parent下總記錄數 Data.getOffset(parent)獲取parent下偏移 **3、樹型加載、刪除和保存** BizData樹型數據加載邏輯 delayLoad=true時數據是按樹型層級加載的,即data在refreshData時只是加載根數據,其他層數據通過相關樹型組件(tree、treeGrid等)驅動加載或者通過data的api進行加載; 同時樹根數據由rootFilter決定,缺省rootFilter=parentRelation is null;其他層級的數據在執行數據查詢時自動增加parentRelation = parent.val(parentRelation)條件; 這種分級加載邏輯基本等同于普通數據加載,只是加載數據放在不同rows下; 當delayLoad=false時表示樹型數據一次全部加入,返回數據同上面介紹的row—rows樹型數據結構 BizData樹型數據刪除同普通數據刪除,data組件沒有提供級聯刪除子的能力,如果需要級聯刪除子可以使用biz層關系上的高級中的級聯刪除設置 BizData樹型數據保存,首先把修改的數據行處理層二維table的結構,然后就是正常的BizData保存邏輯了 **二、主從數據** 主從數據是業務場景中經常遇到的形式,data組件默認支持了主從數據的處理; 當主數據游標滾動時會主動刺激從數據加載或者過濾,當然主從的層數沒有限制,這是一個遞歸級聯刷新刺激過程 **1、主從數據相關屬性** master:{object} 主從參數 包括屬性: data: 主數據的XID column: 和masterData關聯的列,可以理解為數據庫中的外鍵 autoLoad:{boolean} 自動加載數據,這個屬性當data為從data時決定,是不是根據主data自動加載數據,如果從data的autoLoad=false時,從data的數據需要開發者主動調用refreshData等方法進行數據加載 **2、主從數據相關api** Data.each(callback);——-遍歷當前和主關聯的從數據 Data.eachAll(callback);——-遍歷data的全部數據 Data.isSelfChanged();——-判斷data自身是否修改 Data.isSlaveChanged();——-判斷從data是否修改 Data.isChanged();——-判斷data是否修改,包括從data的修改狀態 **3、主從數據加載、刪除和保存** 主從BizData數據加載和普通data加載邏輯基本一致,只是在從數據查詢時增加了filter:master.column=masterData.getCurrentRow().getID() 同樹型BizData邏輯一樣,data組件沒有實現前端數據的級聯刪除,同樣需要在biz端設置整體部分關系來實現級聯刪除,或者通過數據庫的外鍵特性 主從BizData數據的保存保證了事務,也就是說主從關聯的所有data在一個批事務內完成,保存順序是先主后從 **三、BizData的更新模式** 更新模式屬性:BizData.updateMode 數據更新模式,取值:whereVersion/whereAll BizData更新數據的原理: 解決數據更新沖突平臺采用樂觀鎖實現,簡單說就是多個人同時更新一條數據時只會一個更新成功; 平臺中更新模式有兩種:whereVersion,whereAll,其實還可以增加whereKey(目前沒有) whereVersion更新數據時使用key和version作為條件更新,使用data的save時平臺會自動維護version,也就是說在更新語句中會做version+1,當version變化時說明數據已經被人修改,當前更新失敗回滾 whereAll模式使用所有查詢列的舊值做更新的條件,當條件不滿足就說明數據已經被人修改,當前更新失敗回滾 從數據嚴格性上說:whereKey<whereVersion<whereAll 平臺BizData默認使用whereVersion
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看