在這一步中,你將添加一個(gè)按鈕。應(yīng)用啟用時(shí),文本字段中沒有文本。用戶單擊按鈕時(shí),應(yīng)用將顯示出 Anne Bonney 的字樣。
piratebadge.html
...
<div class="widgets">
<div>
<input type="text" id="inputName" maxlength="15">
</div>
<div>
<button id="generateButton">Aye! Gimme a name!</button>
</div>
</div>
...
generateButton
,所以Dart可以找到它。import 'dart:html';
ButtonElement genButton;
dart:html
中眾多元素的一個(gè)。void main() {
querySelector('#inputName').onInput.listen(updateBadge);
genButton = querySelector('#generateButton');
genButton.onClick.listen(generateBadge);
}
click
事件...
void setBadgeName(String newName) {
querySelector('#badgeName').text = newName;
}
為按鈕實(shí)現(xiàn)一個(gè)點(diǎn)擊監(jiān)聽
...
void generateBadge(Event e) {
setBadgeName('Anne Bonney');
}
badgeName
的顯示內(nèi)容設(shè)置為了 Anne Bonney 。修改 updateBadge()
方法,在其中調(diào)用 setBadgeName()
方法
void updateBadge(Event e) {
String inputName = (e.target as InputElement).value;
setBadgeName(inputName);
}
在 updateBadge()
方法中添加一個(gè) if-else 結(jié)構(gòu)
void updateBadge(Event e) {
String inputName = (e.target as InputElement).value;
setBadgeName(inputName);
if (inputName.trim().isEmpty) {
// To do: add some code here.
} else {
// To do: add some code here.
}
}
String
來(lái)源于 dart:core
庫(kù),這個(gè)庫(kù)在每一個(gè) Dart程序中都被自動(dòng)添加。
if-else
。void updateBadge(Event e) {
String inputName = (e.target as InputElement).value;
setBadgeName(inputName);
if (inputName.trim().isEmpty) {
genButton..disabled = false
..text = 'Aye! Gimme a name!';
} else {
genButton..disabled = true
..text = 'Arrr! Write yer name!';
}
}
updateBadge()
的代碼在按鈕元素上使用 cascade 操作。其結(jié)果和下面代碼結(jié)果一樣genButton.disabled = false;
genButton.text = 'Aye! Gimme a name!';
保存你的文件
右擊 piratebadge.html
選擇 Run in Dartium
。
和下面的實(shí)際比較一下。
http://wiki.jikexueyuan.com/project/learn-dart-in-minutes/images/dart1-learn-dart-in-minutes-step-3-add-a-button-pic1.png" alt="運(yùn)行" />