From 659083620bb90075273dd073ad29c4f9ebe893b4 Mon Sep 17 00:00:00 2001 From: chestnutchen Date: Thu, 11 Dec 2014 21:35:08 +0800 Subject: [PATCH 1/2] remove hide even listener in QuickTip fit new code style fix some notation --- src/tpl.js | 2 +- src/ui/extension/QuickTip.js | 4 ---- src/ui/lib.js | 2 +- src/ui/navigator.js | 12 ++++++------ 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/tpl.js b/src/tpl.js index c674470..4a4d861 100644 --- a/src/tpl.js +++ b/src/tpl.js @@ -50,7 +50,7 @@ define( ToggleButton: './ui', AuthPanel: './ui', SearchTree: './ui', - RichBoxGroup: './ui' + RichBoxGroup: './ui', LineChart: './ui', PieChart: './ui', BarChart: './ui' diff --git a/src/ui/extension/QuickTip.js b/src/ui/extension/QuickTip.js index b707f2c..7b73ef0 100644 --- a/src/ui/extension/QuickTip.js +++ b/src/ui/extension/QuickTip.js @@ -113,10 +113,6 @@ define( }; tip.attachTo(attachOptions); - tip.on('hide', function () { - tip.dispose(); - }); - tip.show(element, attachOptions.positionOpt); }; diff --git a/src/ui/lib.js b/src/ui/lib.js index e5546ff..3c3ec0d 100644 --- a/src/ui/lib.js +++ b/src/ui/lib.js @@ -90,7 +90,7 @@ define( var i = 0; while (matches[i] && matches[i] !== element) { - i++; + i++; } return matches[i] ? true : false; diff --git a/src/ui/navigator.js b/src/ui/navigator.js index f39e071..86b8b45 100644 --- a/src/ui/navigator.js +++ b/src/ui/navigator.js @@ -36,15 +36,15 @@ define(function (require) { * @param {string} domId dom元素id * @param {Array} config 配置数组 * - * @cfg {string} [config.navId] 主导航dom元素id - * @cfg {string} [config.text] 导航文本 + * @cfg {string} config.navId 主导航dom元素id + * @cfg {string} config.text 导航文本 * @cfg {string} [config.url] er.url,不包含参数 * @cfg {string} [config.externalUrl] 外部路径,优先跳转 * @cfg {Array} [config.include] 表示是否需要高亮该导航 * 匹配目标均为`er.action.url`,不包含`~`的参数 * @cfg {Array} [config.exclude] 和`include`相反的配置 * 这里的逻辑`exclude`优先级比`include`高,但是也不要两个都配同个规则吧。。 - * @cfg {Array} [config.tabs] 子导航,结构和一级导航config中每一项保持一致 + * @cfg {Array} config.tabs 导航项,子导航结构和一级导航config中每一项保持一致 * @cfg {string} [config.auth] 与er.permission对应的权限控制 * * @sample: @@ -191,8 +191,8 @@ define(function (require) { * 展示或隐藏二级导航 * * @param {Object} navItems 缓存导航的集合,传入来记录当前高亮的索引 - * @param {Object} element 要展示的子tab,不传表示隐藏所有 - * @param {string} index 要展示的导航索引 + * @param {Object} [element] 要展示的子tab,不传表示隐藏所有 + * @param {string} [index] 要展示的导航索引 */ function toggleSubNav(navItems, element, index) { var className = 'nav-sub-current'; @@ -220,7 +220,7 @@ define(function (require) { * @param {Object} config globalconfig * @param {Object} navItems 缓存nav元素的对象 * @param {Object} nav nav父元素 - * @param {string} isSub {''|'sub-'},主导航或二级子导航 + * @param {string} [isSub] {''|'sub-'},主导航或二级子导航 */ function createNavElements(config, navItems, nav, isSub) { isSub = isSub || ''; From 7d9691391879a86f5d9247c8eba39e8fe2b1b458 Mon Sep 17 00:00:00 2001 From: chestnutchen Date: Fri, 19 Dec 2014 11:20:14 +0800 Subject: [PATCH 2/2] Fix #47 and Fix #48 add listchange event and support prepare when loading data async revert Quicktip hide event --- src/mvc/ListAction.js | 2 ++ src/mvc/ListModel.js | 19 +++++++++++++++++++ src/ui/extension/QuickTip.js | 6 +++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/mvc/ListAction.js b/src/mvc/ListAction.js index d215c6c..373fcf7 100644 --- a/src/mvc/ListAction.js +++ b/src/mvc/ListAction.js @@ -109,6 +109,7 @@ define(function (require) { * 根据新的URL参数刷新列表 * * @param {er.URL} [url] 新的URL对象,没有时按当前URL刷新 + * @fires listchange 跳转后将URL通过事件传递出来,作为child的时候父action可以去修改address bar * @return {er.Promise} 返回请求的Promise对象 */ ListAction.prototype.loadList = function (url) { @@ -122,6 +123,7 @@ define(function (require) { return me.model.loadData(url).then(function () { me.redirect(url, {silent: true}); me.view.refresh(); + me.fire('listchange', {url: url}); }); } }; diff --git a/src/mvc/ListModel.js b/src/mvc/ListModel.js index 54b97f7..b53c695 100644 --- a/src/mvc/ListModel.js +++ b/src/mvc/ListModel.js @@ -8,6 +8,7 @@ define(function (require) { var util = require('er/util'); var BaseModel = require('./BaseModel'); var batUtil = require('../util'); + var Deferred = require('er/Deferred'); /** * 业务`Model`基类 @@ -210,7 +211,25 @@ define(function (require) { return me.listRequester(me.getQuery()) .then(function(data) { + function processError (ex) { + var error = { + success: false, + name: '$prepare', + options: {}, + error: ex + }; + throw error; + } + me.fill(adaptData(data)); + + var preparing = me.prepare(); + if (Deferred.isPromise(preparing)) { + return preparing.fail(processError); + } + else { + return preparing; + } }); }; diff --git a/src/ui/extension/QuickTip.js b/src/ui/extension/QuickTip.js index 7b73ef0..c2764c8 100644 --- a/src/ui/extension/QuickTip.js +++ b/src/ui/extension/QuickTip.js @@ -68,7 +68,7 @@ define( // 引用目标控件的属性值 if (content.charAt(0) === '@') { var path = content.substring(1).split('.'); - var data = this.get('data'); + var data = this.data; if (!data) { return ''; } @@ -113,6 +113,10 @@ define( }; tip.attachTo(attachOptions); + tip.on('hide', function () { + tip.dispose(); + }); + tip.show(element, attachOptions.positionOpt); };