dojo 1.8 - 将长html内容插入domContruct.place()

时间:2013-01-11 03:17:31

标签: dojo

您好dojo的domConstruct.toDom和domConstruct.place有问题。 我曾经使用domConstruct函数或只使用domConstruct.place,我似乎无法 放置长html列表标签。 请参阅下面的脚本:

var row = domConstruct.toDom('<ul id="list">
<li class="odd">
    <div class="bold">
        <a class="odd">Odd</a>
    </div>
</li>
<li class="even">
    <div class="italic">
        <a class="even">Even</a>
    </div>
</li>
<li class="odd">
    <a class="odd">Odd</a>
</li>
<li class="even">
    <div class="bold">
        <a class="even">Even</a>
    </div>
</li>
<li class="odd">
    <div class="italic">
        <a class="odd">Odd</a>
    </div>
</li>
<li class="even">
    <a class="even">Even</a>
</li>

<ul id="list2">
<li class="odd">Odd</li></ul>');

domConstruct.place(row,"CPane_Chart");

请提前告知

克莱门特

1 个答案:

答案 0 :(得分:0)

问题不在于Dojo,除非你在最后用\转义新行,否则你不能在JavaScript中使用多行字符串。所以你可以这样做:

var row = domConstruct.toDom('<ul id="list"> \
<li class="odd"> \
    <div class="bold"> \
        <a class="odd">Odd</a> \
....
<li class="odd">Odd</li></ul>');

但就个人而言,我更喜欢将这样的HTML放入外部HTML文件中并使用dojo / text加载它:

require(["dojo/text!myListHtml.html"], function(myListHtml){
     var row = domConstruct.toDom(myListHtml);
});

请参阅http://dojotoolkit.org/reference-guide/1.8/dojo/text.html