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