2013-02-13 27 views
2

有時我真的不知道,我不只是使用jQuery ...簡單的模板化的Dijit拋出空解析錯誤

基本模板化的Dijit:

define([ 
    'dojo/_base/declare', 
    'dijit/_WidgetBase', 
    'dijit/_TemplatedMixin', 
    'dijit/_WidgetsInTemplateMixin', 
    'dojo/text!./templates/basic.html' 
    ], 
function(
    declare, 
    _WidgetBase, 
    _TemplatedMixin, 
    _WidgetsInTemplate, 
    template 
    ) { 
    return declare("Slider", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplate], { 
     templateString : template 
    }) 
}) 

模板:

<div class="${baseClass}"> 
    <div data-role="decor" data-dojo-type="gs/ImageBox/ImageBox"> 
     <header> 
      <h2>Air Jordan 6</h2> 
      <h6>2000</h6> 
     </header> 
     <footer> 
      <a href="javascript:void(0);" data-role="toggle">More Information</a> 
     </footer> 
    </div> 
    <div data-role="content"> 
     <section class="data"> 
      <header> 
       <a href="javascript:void(0);" data-role="toggle" class="sticky">Hide</a> 
       <ul class="list_info"> 
        <li><span>Release Date</span><span>3.15.2003</span></li> 
        <li><span>Release Type</span><span>General Release</span></li> 
        <li><span>Cost at release</span> <span>$100</span></li> 
        <li><span>Cost Today</span> <span>$325-$600</span></li> 
       </ul> 
      </header> 
      <!-- 
      <div data-dojo-type="dijit/layout/ContentPane" href="./php/info.php?id=3"></div> 
      --> 
     </section> 
    </div> 
</div> 

拋出一個通用的解析錯誤。如果我刪除了data-dojo-type="gs/ImageBox/ImageBox"聲明,它至少可以解析。

道場配置:

<script> 
dojoConfig = { 
    parseOnLoad : false, 
    async : true, 
    cacheBust : true, 
    packages : [ 
     { name : 'gs', location: location.pathname.replace(/\/[^/]*$/, '/js') } 
    ], 
    debug : true, 
    debugAtAllCosts : true 
} 
</script> 

這將會是真棒,如果道場拋出錯誤的一些信息,但它只是給出了dojo.js.的線2-2的parse error()

讓我瘋狂。

回答

1

該職位的第一行應改爲「我不知道我爲什麼這麼(blind|stupid)」。

該模板的第一行實際上作爲第一行發表了評論。大不,不,顯然。

1

我想你需要告訴AMD裝載機,你需要gs/ImageBox/ImageBox

define([ 
    'dojo/_base/declare', 
    'dijit/_WidgetBase', 
    'dijit/_TemplatedMixin', 
    'dijit/_WidgetsInTemplateMixin', 
    'gs/ImageBox/ImageBox', 
    'dojo/text!./templates/basic.html' 
], function(
    declare, 
    _WidgetBase, 
    _TemplatedMixin, 
    _WidgetsInTemplate, 
    ImageBox, 
    template 
) { 
+0

也試過了。我應該補充一點,它會在任何Dijit,內容窗格中引發錯誤。我之前編寫過模板dijits,但它的超級棒令錯誤非常普遍。我將其追溯到控制檯中parser.js的onload方法,但是......不知道。 – Phix 2013-02-13 22:16:07