使用dojo声明函数时,参数的顺序似乎正确。此函数标头导致错误:
require(["dojo/dom",
"dijit/Dialog",
"dijit/form/Form",
"dijit/form/TextBox",
"dijit/form/ValidationTextBox",
"dijit/form/Textarea",
"dijit/form/Button",
"dojox/validate/web",
"dojo/request",
"dojo/domReady!"],
function(dom, Dialog, Form, TextBox, ValidationTextBox, TextArea, Button, request)
执行request.post会导致未定义的错误。然后我改变了公园的顺序:
require(["dojo/dom",
"dojo/request",
"dijit/Dialog",
"dijit/form/Form",
"dijit/form/TextBox",
"dijit/form/ValidationTextBox",
"dijit/form/Textarea",
"dijit/form/Button",
"dojox/validate/web",
"dojo/domReady!"],
function(dom, request, Dialog, Form, TextBox, ValidationTextBox, TextArea, Button ){
通过在订单中提前移动dojo / request和request,错误就消失了。我在另一个具有不同参数的脚本中遇到了同样的问题。是否有一些文档说明如何订购参数? dojo元素必须在数字元素之前,dojo / domReady不能承受吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
在使用dojo时,我想起了 要求([””]) part作为传递给函数的参数的参数类型。
因此,
require(["dojo/dom",
"dijit/Dialog",
"dijit/form/Form",
"dijit/form/TextBox",
"dijit/form/ValidationTextBox",
"dijit/form/Textarea",
"dijit/form/Button",
"dojox/validate/web",
"dojo/request",
"dojo/domReady!"],
function(dom, Dialog, Form, TextBox, ValidationTextBox, TextArea, Button, request)
当您尝试拨打
时request.post
它正在处理'request'参数,好像它是一种'dojox / validate / web'对象。如果你的功能签名是:
function(dom, Dialog, form, TextBox, ValidationTextBox, TextArea, Button, validateWeb, request)
您的代码可以正常运行。
另一种类比是按照以下方式来考虑:
function("dojo/dom" dom, "dijit/Dialog" Dialog, "dijit/form/Form" Form, ..."dojo/request" request, string[] args0)
以上显然是不合适的语法,但它有助于我以这种方式将其可视化,就像它是一种语言,如java或.net,在编写函数时,您声明参数类型后跟参数名称。