Javascript 以编程方式设置dijit NumberSpinner值

Javascript 以编程方式设置dijit NumberSpinner值,javascript,dojo,set,dijit.form,Javascript,Dojo,Set,Dijit.form,我想以编程方式更改dijit/form/NumberSpinner值。如何使用“数据dojo连接点”或id实现此目的 下面的代码更新数字微调器文本,但它给了我 “未捕获类型错误:c.advice.apply不是函数”错误 如何以编程方式正确更改值 this.typeResidential.set('value', 30); 这取决于你如何编写应用程序, 如果您正在使用数据dojo attach point编写小部件并访问此小部件。您的-attach-name或使用id并访问小部件throw注册

我想以编程方式更改
dijit/form/NumberSpinner
值。如何使用“
数据dojo连接点”或
id
实现此目的

下面的代码更新数字微调器文本,但它给了我

“未捕获类型错误:c.advice.apply不是函数”错误

如何以编程方式正确更改值

this.typeResidential.set('value', 30);

这取决于你如何编写应用程序, 如果您正在使用
数据dojo attach point
编写小部件并访问此小部件。您的-attach-name或使用
id
并访问小部件throw
注册表

下面的示例使用
id
并使用
registry.by(“widgetId”).set(“value”,val)使用此小部件的
dijit/registry
设置spiiner的值

实例:

require([“dijit/registry”、“dojo/ready”、“dojo/parser”],
函数(注册表、就绪、解析器){
parser.parse();
就绪(函数(){
registry.byId(“typeResidential”).set(“value”,213);
});    
}
);

在dojo中,您可以通过编程方式(如bRIMOs answer所示)或声明方式设置小部件的属性

以编程方式使用时,请确保
this
对小部件具有正确的作用域

this.typeResidential.set('value', 30);
或者,下面是一个声明性语法的示例,它包括在HTML标记中添加一个name
value
属性

您可以通过两种方式获得相同的结果,这实际上取决于您的应用程序设计

require([“dojo/parser”,“dijit/form/NumberSpinner”])

var dojoConfig={
parseOnLoad:true,
是的,
};

我的荣幸:)++@GibboK看起来我设置的值是正确的。我对“dijit/form/HorizontalSlider”使用了相同的方法,并且工作没有任何问题。我想知道为什么我在尝试设置'dijit/form/NumberSpinner'的值时会收到错误消息。我确保“this”在范围内。@Mackey请发布一个代码的工作示例,在其中您再现了错误,我们将进行查看:)不幸的是,没有看到代码,我们无法真正调试与c.advice相关的错误。apply@GibboK我发现错误来自与同一个“数据dojo连接点”相关的另一个函数。非常感谢你@麦基,不客气。请考虑接受或投票表决的答案使用蜱/向上的图标在其左侧。感谢并愉快地编码:)@bRIMOs非常感谢您的编辑。不客气:)由于“数据dojo连接点”对我不起作用,我尝试了您的建议“注册表”。但是,我仍然收到相同的错误。请发布您正在处理的代码以获得更好的可视性。错误来自另一个共享相同“数据dojo连接点”的函数。不过,我学会了使用“注册表”在dijit小部件中设置值。非常感谢你!很好:),所以如果这有助于将答案标记为已解决✓ (留下答案)(如图=>)谢谢