【问题标题】:cannot read the data object file for handlebars template using require.js无法使用 require.js 读取车把模板的数据对象文件
【发布时间】:2013-09-23 20:13:23
【问题描述】:
//HTML template
requirejs([
    'handlebars',
    'htmlTemplates/mydiv',
    'text!htmlTemplates/mydiv.html'

    ], 
     function (notUsed0, mydivData, mydivTemplate)
    { 
        console.log(mydivData);  
        var theTemplate = Handlebars.compile (mydivTemplate);       
        $(".mydiv").append(theTemplate(mydivData)); 
 //error Uncaught TypeError: Cannot read property 'customerName' of undefined


    }
    );

数据 - mydiv.js

{
    customerName: "peter"
}

模板 - mydiv.html

<div> Name: {{ customerName }} </div>

mydiv 是我的 index.html 正文标签中的一个 DIV 元素

-----编辑----- 我也尝试在函数内定义一个变量

var theData = {customerName:"Shop Page"};



现在一切正常,没有错误,但 html 仍未附加到 index.html 中带有 mydiv id 的 DIV。为什么?

【问题讨论】:

  • 您是否将视图和模板粘贴到同一个文件中 - 因为您调用了两次 mydiv?
  • 我在哪里调用它两次?请检查编辑 - 帖子的最后一行
  • 不,他没有调用两次,第一次是.js,第二次是.html

标签: javascript requirejs handlebars.js


【解决方案1】:

要将myDiv.jsrequirejs 一起使用,您必须将其内容包装在Require 可以理解的声明中。查看http://requirejs.org/docs/api.html#defsimple的文档

myDiv.js的内容改为:

define({
    customerName: "peter"
});

【讨论】:

    猜你喜欢
    • 2016-11-30
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    相关资源
    最近更新 更多