dijit.byId(' someId')。值和dijit.byId(' someId')之间有什么区别。得到('值')

时间:2016-03-23 08:17:39

标签: javascript dojo

当我在客户端为我的一个应用程序进行验证时。我心里想到了这些问题。

问题1:dijit.byId(' someId')。值和dijit.byId(' someId')之间有什么区别。得到('值' )

问题2:

for(indx in strg){
        comment+=strg[indx].replace(/([^\x00-\x7E]|\\s*\\n)*$/g, '');
    }

在上面的js片段中,我在浏览器控制台中出现以下错误

replace is not a function

你能帮我解决这个问题吗

感谢。

1 个答案:

答案 0 :(得分:3)

回答你的第一部分问题。

dijit.byId( 'ID');已被弃用,您应该使用dijit/registry::byId()

如果找到,

registry.byId()将返回具有相同ID的小部件。

您可以通过以下方式在应用程序中使用它:

require(["dijit/registry"], function(registry){
    var widget = registry.byId("yourId");
});

您可以使用widget.get('nameProperty')读取窗口小部件的属性,例如:

require(["dijit/registry"], function(registry){
    var widget = registry.byId("yourId");
    var widgetValue = widget.get('value');
});

通常使用“getter”和“setter”来访问窗口小部件的属性。 Dojo为此提供了两个专用功能:

吸气剂:  widget.get('nameProperty');

设置器:  widget.get('nameProperty', 'newValue');

当使用getter和setter时,你允许dojo知道这些操作,例如在使用setter时,dojo事件会正常启动(比如你的小部件的onChange)。

如果您直接在小部件上访问/设置属性,则绕过dojo,缺少框架管道。

更多信息: https://dojotoolkit.org/reference-guide/1.10/dijit/registry.html