gpt4 book ai didi

javascript - doh Hello World,带有混合 ContentPane 的模板化小部件

转载 作者:行者123 更新时间:2023-12-02 18:33:15 26 4
gpt4 key购买 nike

我正在尝试运行示例 doh 测试用例。我正在测试一个混合来自 dijit/layout/ContentPane 的模板化小部件。

没有抛出任何错误...该组件根本不渲染。正在加载模板文件,因为我可以在 firebug 的网络选项卡中看到它,但它就像没有“附加”到模板化小部件。当我删除 ContentPane mixin 时,一切都会按预期进行。

我们的项目在许多地方使用 ContentPane 混合到我们的模板化小部件中,因此我们可以将我们的小部件视为布局小部件。仅当尝试使用 doh 加载它时才会出现此问题。

我们尝试加载的小部件:

define([
'dijit/layout/ContentPane',
'dijit/_WidgetsInTemplateMixin',
'dijit/_TemplatedMixin',
'dijit/_WidgetBase',
'dojo/_base/declare',
'dojo/text!./about.html'
], function(ContentPane, WidgetsInTemplateMixin, TemplatedMixin, WidgetBase, declare, about) {
return declare([ContentPane, TemplatedMixin, WidgetsInTemplateMixin], {
templateString: about,

constructor: function() {
this.inherited(arguments);
},

startup: function() {
this.inherited(arguments);
}
});
});

模板:

<div>
<div>
<h1>foo</h1>
</div>
</div>

doh 测试运行器页面:

<body class="claro">
<div style="height: 100%">
<div id="mainContainer"
style="height: 100%; width: 100%"
data-dojo-type="dijit/layout/BorderContainer">
<div data-dojo-type="dijit/layout/ContentPane"
data-dojo-props="region: 'center'">
<div data-dojo-type="testPackage/widgets/About/About"
style="width: 100px; height: 100px; background-color: green">
</div>
</div>
</div>
</div>

<script type="text/javascript">
require([
'dojo/ready',
'dojo/parser',
'dojo/dom-style',
'dojo/query',
'dojo',
'doh'
], function(ready, parser, domStyle, query, dojo, doh){
ready(function() {
parser.parse();

doh.register("t", [
function setup(t){
var d = new doh.Deferred();

d.callback(true);
return d;
}
]
);
doh.run();
});
});
</script>
</body>

模板 html 文件中的“foo”文本未显示

最佳答案

"so we can treat our widget as a layout widget"...

如果您只想获得布局功能,则应该混合 dijit/_LayoutWidget 而不是 dijit/layout/ContentPane。

所以,你的小部件将变成:

define([
'dijit/layout/_LayoutWidget',
'dijit/_WidgetsInTemplateMixin',
'dijit/_TemplatedMixin',
'dojo/_base/declare',
'dojo/text!./about.html',
'dojo/domReady!'
], function(ContentPane, _WidgetsInTemplateMixin, _TemplatedMixin, declare, about) {
return declare([_LayoutWidget, _TemplatedMixin, _WidgetsInTemplateMixin], {

templateString: about,

// ...
});
});

关于javascript - doh Hello World,带有混合 ContentPane 的模板化小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17601868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com