javascript - 为什么这个 dojo.mvc.Repeat 不能在模板化小部件中工作?

标签 javascript dojo

我想创建一个带有重复元素的模板化 Dojo 小部件。通过阅读 dojotoolkit.org 上的文档,这似乎应该可行:

widget.js:

define([
    'dojo/_base/declare',
    'dijit/_WidgetBase',
    'dijit/_TemplatedMixin',
    'dijit/_WidgetsInTemplateMixin',
    'dojo/text!./test.html',
    'dojox/mvc/getStateful',
    'dojox/mvc/Repeat',
    'dojox/mvc/Output',
    'dojox/mvc/at',
], function(declare, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin,
            template, getStateful) {
    var data = getStateful([
        {
            'id': 1
        },
        {
            'id': 2
        }
    ]);

    return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
        templateString: template,
        data: data
    });
});

测试.html:

<section>
    <script type="dojo/require">at: "dojox/mvc/at"</script>
    <div data-dojo-type='dojox.mvc.Output' data-dojo-props="value: at(this.data[0], 'id')"></div>
    <div data-dojo-type="dojox.mvc.Repeat" data-dojo-props="children: this.data">
        <div>REPEAT</div>
    </div>
</section>

但是,“输出”小部件似乎可以正确检索第一个 ID,但“重复”不显示任何内容。

为什么重复在这里不起作用?我看到一些帖子说 WidgetList 可能会取代 Repeat,但它具有相同的行为(即不显示任何内容)。我错过了什么,还是这是预期的行为?

谢谢!

最佳答案

不知道为什么它对你不起作用,但我尝试将以下 HTML 放入与你的 widget.js 和 test.html 相同的目录中,并且它起作用了:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/dojo/1.10.0/dojo/dojo.js" data-dojo-config="parseOnLoad: 0, async: 1"></script>
        <script type="text/javascript">
            require({
                paths: {
                    "widgetlistintemplate": location.pathname
                }
            }, ["dojo/parser"], function (parser) {
                parser.parse();
            });
        </script>
    </head>
    <body>
        <div data-dojo-type="widgetlistintemplate/widget"></div>
    </body>
</html>

顺便说一句,你说得对,dojox/mvc/WidgetList 是 dojox/mvc/Repeat 的后继者。 dojox/mvc/Repeat 已被弃用。

希望这有帮助。

最好,-阿基拉

关于javascript - 为什么这个 dojo.mvc.Repeat 不能在模板化小部件中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25310643/

相关文章:

javascript - 如何更改 angularJS 中的观察者顺序?

javascript - 在模型更改时刷新 Dojo MVC 组不适用于复杂对象

javascript - Dojo 有类似 jQuery 的 :has() selector? 之类的东西吗

debugging - 如何在浏览器中调试Dojo?

grails - 重用json/model对象以避免对 Controller 进行额外的调用

javascript - 类型错误 : variable is undefined despite being able to log the variable correctly

javascript - 如何绕过 Scrapy 中的 cloudflare bot/ddos 保护?

javascript - 延迟鼠标滚轮功能

javascript - 无法加载 zurb 基础 JavaScript

javascript - dojo不捕获右键单击事件