简体   繁体   English

在dojo 1.7中使用data-dojo-id

[英]Using data-dojo-id in dojo 1.7

I try to use some 'dijit' widget from script, for example to change content or to connect event. 我尝试从脚本中使用一些“dijit”小部件,例如更改内容或连接事件。

For this purpose I try to use 'data-dojo-id' attribute in html, which (as I understood) creates global object of type 'data-dojo-type' and name 'data-dojo-id'. 为此,我尝试在html中使用'data-dojo-id'属性,(据我所知)创建了'data-dojo-type'类型的全局对象,并命名为'data-dojo-id'。

But I got errors... What I do wrong? 但我有错误......我做错了什么?

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Dojo test</title>
    </head>
    <body>
        <div    id="myDivId"
                data-dojo-type="dijit.layout.ContentPane"
                data-dojo-id="myDojoId">
        Hello Everyone!
        </div>
        <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad:true"></script>
        <script type="text/javascript">
        require(["dijit/dijit", "dijit/layout/ContentPane"], function(){
            //myDojoId.setContent("Hello World!");  // error : myDojoId is not defined

            // Even this not working:
            console.log(dijit.byId("myDivId"));     // undefined 
            console.log(dijit.byId("myDojoId"));    // undefined 
            });
        </script>
    </body>
</html>

data-dojo-id and jsId (deprecated) attributes create a global object referring to that dijit. data-dojo-id和jsId(不建议使用)属性创建一个引用该dijit的全局对象。

I believe you need to wrap the lookups in a ready() call 我相信你需要在ready()调用中包装查找

<script type="text/javascript">
       require(["dojo/ready","dijit/dijit", "dijit/layout/ContentPane"], function(ready,dijit,ContentPane){
            //shouldn't  be defined yet
            console.log(dijit.byId("myDivId"));     // undefined 
            console.log(myDojoId);    // undefined 

            ready(function(){
             console.log(dijit.byId("myDivId"));
             //note how data-dojo-id doesn't have the lookup
             console.log(myDojoId);
           });
        });
</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM