Git Product home page Git Product logo

Comments (13)

otakustay avatar otakustay commented on July 22, 2024

修订:

addremove事件的事件对象中增加index属性,指示添加或移除的标签所在的下标

from esui.

errorrik avatar errorrik commented on July 22, 2024

属性命名

建议allowClose -> closable

方法参数命名

{Object} config,这个改成{Object} tab吧

对HTML声明的导航条处理策略

  1. 使用该选项 覆盖构造函数传入的tabs选项 。
  2. 删除该导航条元素,后续Tab控件会自己建立符合需求的导航条。

我觉得更合理的是:
如果有构造函数传入的tabs属性,用其重新生成导航条。否则,不需要重新建立导航条,直接在上面附加样式和行为。

关于“问题”的问题

  1. 是否需要setActiveIndex、getActiveIndex等方法,现在可以使用set('activeIndex')来操作

现在那个activeAt我觉得可以不要。至于这两个方法,可以有可以没有。

  1. 是否添加属性使得控件在导航条最后面有一个“添加”按钮,点击后触发add事件,从而实现可变的标签页功能

有这需求么??看大家咯

  1. 移除一个标签的时候,对应的面板是否有默认的操作(隐藏?删除?)

我觉得不能删除面板。可以隐藏

from esui.

otakustay avatar otakustay commented on July 22, 2024

对HTML声明的导航条处理策略

最初的版本是用户有声明导航条元素,直接用那个元素,不删了重建的,可是碰到些问题。

因为默认的导航条是ul > li的结构,但如果直接复用,用户完全可能用div > span结构,这会导致后续添加tab时,要智能检测用户用的是<li>还是<span>还是啥别的,工作量非常大。

所以为了偷懒,又不想限制用户一定要用ul > li(我不觉得限制得了),就干脆删了原来的重建一个。反正在控件管理下的

其它

现在那个activeAt我觉得可以不要

说白了activateAt(index)就是set('activeIndex', index),只是因为addremove都有个对应的传下标的方法在,保持统一性就留出来了。要去掉也OK,如果其他人没意见,到截止时我就去掉这方法。

from esui.

errorrik avatar errorrik commented on July 22, 2024

导航条处理策略

删了重建的问题是,用户可能在上面自定义了自己的class做特殊样式,或其他什么东西,就没了。

activeAt

我们的ui体系,统一性在于,设置相关的都是set[...]

from esui.

otakustay avatar otakustay commented on July 22, 2024

导航条处理策略

那能不能这样,我们要求用户必须使用<ul><ol>元素,不得用其它元素作为导航条。然后导航条里面的innerHTML是肯定会被覆盖的(更换datasource的时候有清理掉的需要),所以里面的<li>就没什么好说的了,要是在<li>上加样式到时候被冲掉了不负责。

那样又引出另一个问题,如果导航条元素已经存在,要移动一下放到main的最前面来吗?

activeAt

OK,删。

from esui.

errorrik avatar errorrik commented on July 22, 2024

导航条处理策略

不如kiss点,用data-role="navigator"下的第一个element的tagName?

还有,如果已经存在,就不应该移动它了吧。举个例子,ie的contentEditable,插入一个a,会自动把href换成绝对路径。这就是做得越多错的越多的典型……

from esui.

otakustay avatar otakustay commented on July 22, 2024

不如kiss点,用data-role="navigator"下的第一个element的tagName?

好吧又变回第一版了……不过需要声明的是,即便我能处理元素类型的问题,在导航条的子元素上有其它的属性或者class,也是会被刷掉的,肯定会用navigator.innerHTML生成各个tab项,别指望会留下来了。

from esui.

errorrik avatar errorrik commented on July 22, 2024

没变回第一版啊,第一版是不支持data-role="navigator"的。

from esui.

otakustay avatar otakustay commented on July 22, 2024

那个第一版是我本地的一套实现,从来没commit上来过,你们没看到过哈,那个版本里有

var navNodeName = this.navigator.nodeName.toLowerCase();
var nodeName = navNodeName === 'ul' || navNodeName === 'ol' ? 'li' : 'span';
// ...

等讨论时间截止,没啥变化的话我会使用现在讨论的方案

from esui.

errorrik avatar errorrik commented on July 22, 2024

喔喔,看来做方案和泡妞一样,通常第一反应看上的是最好的

from esui.

otakustay avatar otakustay commented on July 22, 2024

我仔细思考了一下,认为我们应该对控件的HTML结构有更强的控制,理由如下:

  • 乱用HTML,UI的CSS无法生效
  • 乱用HTML,导致控件实现有太多的分支,比如这个Tab还要算navigator下的子元素是啥

我建议控件强制要求用户使用固定的结构,比如Tabnavigator如果有,则必须是<ol><ul>,里面是一堆li > span结构,不然就出错不管。

我相信用户都写HTML了,写个<ul>没什么难度,为什么要ESUI去纵容用户呢?

另外,保留navigator元素是可以,但如果datasource之类的关键属性有变化,还是会直接刷掉的。

from esui.

otakustay avatar otakustay commented on July 22, 2024

b9e04ad 中,支持Tab控件从自定义的导航条元素中提取内容后保留该元素,但不提供 猜测元素标签 的功能,永远只使用<li>标签,因此Tab控件的导航条元素只能是<ul><ol>元素。

推荐的结构如下:

<ul>
    <li data-for="panel1"><span>tab1</span></li>
</ul>

原则上 不建议 自己提供导航条元素,因为allowClose等属性会影响导航条的内容,建议让控件自动生成正确的结构。

from esui.

otakustay avatar otakustay commented on July 22, 2024

关,后续单独发标准文档Review

from esui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.