我正在使用dojo 1.10并且拼命想找到一种干净的方法来创建复合小部件,
我有以下代码:
TabsWidget.js
require([......], function(.....template ....){
var Tabs = declare('...', [....], {
templateString : template,
region : 'center'
});
var o = new Tabs({}, 'container');
widget.startup();
});
TabsWidget.html
<div style="width: 100%; height: 100%;">
<div-dojo-type="dijit/layout/TabContainer" style="..">
......Content pane........
</div>
</div>
home.html
......
<div data-dojo-type="TabsWidget"></div>
选项卡呈现正常,它们显然是空标签,这里的目标是定义一个包含网格和搜索表单的单独小部件。
然后,我想在我的一个内容窗格中声明此窗口小部件,但我不确定如何执行此操作。
任何人都可以解释一下这是如何工作的,或者指向一个教程/文档,说明如何最好地做到这一点?
提前致谢。
答案 0 :(得分:0)
查看creating template-based widgets上的Dojo文档。
要将TabsWidget用作标准窗口小部件,需要对其进行有点不同的组织。特别是:
My string is \U202a+98\U00a0910\U00a0280\U00a05305\U202c
定义窗口小部件模块,而不是@pytest.fixture()
def connection():
return make_connection()
@pytest.fixture()
def database(connection):
connection = request.fixtures['connection']
return create_database(connection)
@pytest.fixture()
def table(request):
database = request.fixtures['database']
return create_table(database)
@pytest.mark.usefixtures('database')
def test_whatever(connection, table):
insert_some_data(table)
connection.execute(...)
...
更像是:
define
此外,您通常会在创建窗口小部件时设置'region'属性,而不是在定义窗口小部件时。你的小部件本身可能不使用'region';它的意思是告诉容器放置小部件的位置。所以:
require
答案 1 :(得分:0)
为了轻松实现这一目标,您可以创建一个基于父模板的窗口小部件,其中包含一个父div:<div data-dojo-attach-point="parentDiv"> </div>
并将您的选项卡或内容窗格放在其中,然后单独创建另一个基于模板的窗口小部件,您可以从父窗口小部件实例化该窗口小部件(包含网格或搜索框),并将该窗口小部件放在内容窗格div标签中。您可以从子窗口小部件发出事件,以便可以在该事件上触发任何功能。
在dojo中创建基于模板的窗口小部件的导师:http://haritechtalk.blogspot.in/2015/09/how-to-create-template-based-widget-in.html