Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Dart 自定义元素-构造函数中查询()的空引用_Dart_Dart Webui - Fatal编程技术网

Dart 自定义元素-构造函数中查询()的空引用

Dart 自定义元素-构造函数中查询()的空引用,dart,dart-webui,Dart,Dart Webui,我正在开发我的第一款飞镖应用程序,完成了飞镖游戏教程。我正在尝试创建一个语义命名为top-menu元素,它最终将在页面顶部显示一个导航菜单选项卡列表。我的Dart应用程序能够识别我的自定义元素并调用关联的构造函数 但是,当试图在自定义元素中查询UL元素时,我得到了一个空引用。我需要UL参考,以便将我的LI元素动态加载到菜单中 问题1: 该元素是否应该在构造函数运行时在DOM中可见 问题2: 如果它还不可见,那么在自定义元素完全加载到DOM中之后,是否有Dart事件可以用来触发LI元素的加载 提前

我正在开发我的第一款飞镖应用程序,完成了飞镖游戏教程。我正在尝试创建一个语义命名为top-menu元素,它最终将在页面顶部显示一个导航菜单选项卡列表。我的Dart应用程序能够识别我的自定义元素并调用关联的构造函数

但是,当试图在自定义元素中查询UL元素时,我得到了一个空引用。我需要UL参考,以便将我的LI元素动态加载到菜单中

问题1: 该元素是否应该在构造函数运行时在DOM中可见

问题2: 如果它还不可见,那么在自定义元素完全加载到DOM中之后,是否有Dart事件可以用来触发LI元素的加载

提前谢谢!以下是我的自定义元素的来源,以供参考:

topmenu-element.html


顶部菜单
    topmenu-element.dart

    import'package:web_ui/web_ui.dart';
    导入“dart:html”;
    类TopMenu扩展了WebComponent{
    列表菜单项=[“会话”、“身份验证服务”、“车辆服务”、“订户服务”、“数据服务”];
    void populateMenu(){
    UListElement menuList=query(“#顶部菜单列表”);
    LIElement newMenuItem=新的LIElement();
    newMenuItem.text=menuItems[0];
    menuList.children.add(newMenuItem);
    }
    TopMenu(){
    //populateMenu();
    }
    }
    
    我不能具体谈论使用查询方法的构造函数中的DOM可见性,因为我确实不确定。但是,您可能可以使用更好的方法,这些方法在项目的不同阶段调用

    也就是说,我可以问一下为什么需要使用这个特殊的方法来添加子对象。这样做可能更容易:

    
    顶部菜单
    
    • {{item}

    这样就不需要在构造函数中添加任何菜单显示代码。

    谢谢,马特。我选择我的方法只是因为这是这个达特·努布能想到的第一件事。我想你的解决方案正是我想要的。从这里开始,我将致力于动态填充菜单项。