3
我正在研究我的第一個Dart應用程序,完成了飛鏢遊戲教程。我正在嘗試創建一個名爲top-menu的語義元素,最終將在我的頁面頂部顯示導航菜單選項卡列表。我的Dart應用能夠識別我的自定義元素並調用相關的構造函數。自定義元素 - 從構造函數中的查詢()的空引用
但是,當我試圖查詢我的自定義元素中的UL元素時,我得到空引用。我需要UL參考才能將我的LI元素動態加載到菜單中。
問題1: 該元素應該在構造函數運行的位置在DOM中可見嗎?
問題2: 如果它尚未可見,是否有一個Dart事件可以用來在自定義元素完全加載到DOM後觸發加載LI元素?
在此先感謝!作爲參考,這裏是我的自定義元素的來源:
頂部菜單,element.html
<!DOCTYPE html>
<html>
<body>
<element name="top-menu" constructor="TopMenu" extends="div">
<template>
<div>
Top Menu
<ul id="top-menu-list"></ul>
</div>
</template>
<script type="application/dart" src="topmenu-element.dart"></script>
</element>
</body>
</html>
頂部菜單,element.dart
import 'package:web_ui/web_ui.dart';
import 'dart:html';
class TopMenu extends WebComponent {
List menuItems = ['Session', 'Authentication Services', 'Vehicle Services', 'Subscriber Services', 'Data Services'];
void populateMenu() {
UListElement menuList = query('#top-menu-list');
LIElement newMenuItem = new LIElement();
newMenuItem.text = menuItems[0];
menuList.children.add(newMenuItem);
}
TopMenu() {
// populateMenu();
}
}
謝謝,馬特。我選擇了我的方法,只是因爲這是Dart Noob能想到的第一件事。我認爲你的解決方案正是我正在尋找的。從這裏開始,我將努力動態地填充menuItem。 – shammer64