Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以编程方式定义附着点_Javascript_Dojo - Fatal编程技术网

Javascript 以编程方式定义附着点

Javascript 以编程方式定义附着点,javascript,dojo,Javascript,Dojo,我想定义自定义小部件,在其内部创建Dijit/form/Button并向其添加附加点。但由于某些原因,附着点仍然不可见 postCreate: function() { require(["dijit/form/Button", "dojo/dom", "dojo/domReady!"], function(Button, dom){ // Create a button programmatically: var myButton = new Button({

我想定义自定义小部件,在其内部创建Dijit/form/Button并向其添加附加点。但由于某些原因,附着点仍然不可见

postCreate: function() {
  require(["dijit/form/Button", "dojo/dom", "dojo/domReady!"], function(Button, dom){
    // Create a button programmatically:
    var myButton = new Button({
      label: "Click me!",
      "data-dojo-attach-point": "myButton"
    }, "progButtonNode").startup();
  });

  console.debug(this.myButton); // returns undefined
}

从技术上讲,你可以做到。但是dojo对解析上的所有附加点进行索引。因此,如果要动态添加按钮,那么也必须解析dom。

这看起来很合理。你能解释一下吗?是否必须在某个时候调用parser.parse()?这是一个棘手的问题,如果以前从未传递过该页面,则可以使用“parser.parse()”,否则将出现“已注册”错误,或者只能通过向解析器添加“rootNode”属性来解析添加的节点。我是如何制作一个按钮小部件的。小部件的模板将定义一个带有附加点的按钮。这样,无论何时需要按钮,都可以动态创建一个按钮并附加它。您可以从“widgetinstance.attachpoint”访问它。希望这对你有帮助!谢谢你的解释。