Javascript 选项卡的Dojo参数

Javascript 选项卡的Dojo参数,javascript,api,dojo,Javascript,Api,Dojo,我在Dojo文档方面遇到了问题(与往常一样)。 在他们的列表中,他们将第二个参数列为一个名为“params”的对象,但他们从来不说您可以在这个params对象中实际放置什么。我可以指定宽度吗?高度?是否指定要作为容器内选项卡的div的id 如果我想指定要由Dojo解析器解析的选项卡容器,也没有关于在HTML中放置哪些属性的规范。我发现下面的示例可以让您放置标题、选定和可关闭选项。还有别的吗 <div id="tabA1" dojoType="dijit.layout.ContentPane

我在Dojo文档方面遇到了问题(与往常一样)。
在他们的列表中,他们将第二个参数列为一个名为“params”的对象,但他们从来不说您可以在这个params对象中实际放置什么。我可以指定宽度吗?高度?是否指定要作为容器内选项卡的div的id

如果我想指定要由Dojo解析器解析的选项卡容器,也没有关于在HTML中放置哪些属性的规范。我发现下面的示例可以让您放置标题、选定和可关闭选项。还有别的吗

<div id="tabA1" dojoType="dijit.layout.ContentPane" title="First Tab"  selected="true" closable="true">
        First Tab
    </div>
    <div id="tabA2" dojoType="dijit.layout.ContentPane" title="Second Tab" closable="true">
        Second Tab
    </div>
    <div id="tabA3" dojoType="dijit.layout.ContentPane" title="Third Tab" closable="true">
        Third Tab
    </div>
</div>

第一选项卡
第二选项卡
第三选项卡

我不是Dojo小部件的专家,但我知道:

  • 所有Dojo小部件构造函数都有签名:

    var小部件=新小部件(参数、节点)

  • 发现参数的最佳方法是查看源代码——不要害怕,它们将是相关类开头的文档化变量

  • 使用小部件的名称通常很容易找到相关文件,因为它们是按路径命名的

  • 查找这些内容的最佳方法是使用Dojo签出和您喜爱的文本编辑器。但也很有效(如果你跟着后备箱走的话)。或者

  • 不要低估查看测试和演示的能力

  • 示例:dijit.layout.TabContainer⇒ . 如果文件丢失,请查看_base.js层次结构的目录,或一些类似的文件,后者可以将相关类捆绑在一起。但在大多数情况下(如TabContainer),您会立即找到它。我们去看看

    在类的顶部有两个公共文档参数:

    • tabPosition-字符串。定义选项卡相对于选项卡内容的位置。“上”、“下”、“左h”、“右h”。默认值:“顶部”
    • tabStrip-bool。定义tablist是否获取用于布局的额外类。默认值:false
    • _controllerWidget—忽略它,没有以下划线开头的公共参数—指定受保护成员是一种常见的JavaScript约定
    但这并不是全部。TabContainer基于(只需查看dojo.declare()头)。我们也可以使用StackContainer的公共参数:

    • doLayout-布尔型。如果为true,请更改当前显示的子对象的大小以匹配我的大小。默认值:true
    • 持久化-布尔。跨会话记住选定的子级。默认值:false
    正如您所见,代码和参数都有很好的文档记录,但并不总是反映在API工具中。现在我们可以放心地创建选项卡容器了

    但让我们先看看它的实际行动。所有Dijit测试都始终处于运行状态。任何dijit.layout.*小部件都将在中进行测试。相关测试文件的名称类似于test_TabContainer.html,事实上我看到了5个文件:

    例如,让我们重新创建第一个TabContainer:

    或者我们可以在测试内联中这样做:

    <div id="mainTabContainer" dojoType="dijit.layout.TabContainer"
        persist="true" tabStrip="true" style="width: 100%; height: 20em;">
      ...
    </div>
    
    
    ...
    
    回到你原来的问题:现在你可以看到宽度和高度只被指定为样式,没有特殊的属性,没有什么新奇的东西,只是一些直观的CSS。因此,如果您希望以编程方式执行此操作,只需在创建TabContainer的新实例之前在节点上设置它们

    是的,我希望API文档也能得到所有这些小细节,但整个设置是直观的,相关部分都记录在文件中。我们确实阅读了源代码,但我们没有试图破译源代码,只是在类的顶部阅读人类可读的注释

    <div id="mainTabContainer" dojoType="dijit.layout.TabContainer"
        persist="true" tabStrip="true" style="width: 100%; height: 20em;">
      ...
    </div>