Javascript 未捕获类型错误:对象不是dojo自定义小部件的函数

Javascript 未捕获类型错误:对象不是dojo自定义小部件的函数,javascript,dojo,Javascript,Dojo,当我试图在我正在创建的dojo小部件中实例化一个类时,我遇到了主题错误: 我在名为/Templates的目录中有小部件和小部件的html模板。代码如下: 小部件(模板/Person.js): )) html模板(Templates/Person.htm) 鲍勃 琼斯 测试页面(TestPerson.htm) 要求([ “模板/人” ],职能(人){ var p=new Person();//对象不是函数此处发生错误 }); 有什么想法吗?可能是因为我在使用CDN吗 谢谢这对我来说很好,你

当我试图在我正在创建的dojo小部件中实例化一个类时,我遇到了主题错误: 我在名为/Templates的目录中有小部件和小部件的html模板。代码如下:

小部件(模板/Person.js):

))

html模板(Templates/Person.htm)


鲍勃

琼斯

测试页面(TestPerson.htm)


要求([
“模板/人”
],职能(人){
var p=new Person();//对象不是函数此处发生错误
});
有什么想法吗?可能是因为我在使用CDN吗


谢谢

这对我来说很好,你确定加载了正确的文件吗(检查浏览器控制台中的响应)

唯一缺少的是实例化
Person
小部件,但没有将其绑定到DOM节点。这对我来说很好:

var p=newperson({},“Person”);
然后我添加了一个名为:



在这里,您可以看到它工作正常:

非常感谢。我可以看出它确实有效。我需要继续使用TestPerson.htm中的位置行:location:location.pathname.replace(/\/$/,“”)
  define([
 "dojo/_base/declare",
 "dijit/_WidgetBase",
  "dijit/_TemplatedMixin",
 "dojo/text!Templates/Person.htm"
 ],
  function (declare, _WidgetBase, _TemplatedMixin, Person) {
    return
    declare([_WidgetBase, _TemplatedMixin], {
        templateString: Person
    });
}
 <div>
 <p>Bob</p>
 <p>Jones</p>
 </div>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

</head>
<body class="claro">
<script data-dojo-config="async: 1, dojoBlankHtmlUrl: '/blank.html',
        packages: [ {
            name: 'Templates',
            location: location.pathname.replace(/\/[^/]+$/, '') + '/Templates'
        } ]"
    src="//ajax.googleapis.com/ajax/libs/dojo/1.10.0/dojo/dojo.js"></script>
<script>
    require([
      "Templates/Person"
 ], function (Person) {
     var p = new Person();//The object is not function error occurs here
 });
    </script>
</body>
</html>