2013-05-28 25 views
1

我目前在教自己的Dart語言,我的第一個應用似乎並沒有正常工作。下面是引發問題的代碼:飛鏢中使用int.parse()問題

usrLoc = int.parse(query("#txtLoc").text); 

當我嘗試運行應用程序,它會打開罰款,但是當我點擊觸發這個(和其他三個類似的解析)按鈕,調試器停止,並告訴我「來源未找到「爲int._native_parse(),int._parse()int.parse()

任何幫助將不勝感激。

回答

1

指定元素#txtLoctext屬性返回空字符串。

parse方法要求:

source必須的鹼基基數數字的非空序列,任選地與一個或減去加號前綴(「 - 」或「+」)。

您可以specify an onError named argument在您的來電parse,這需要一個處理無效的輸入回調。例如,如果你想parse調用返回的值42所有無效的輸入,你可以這樣做:

usrLoc = int.parse(query("#txtLoc").text, onError: (val) => 42); 

如果你真的希望使元件獲得一些文字,你可以的query("#txtLoc").text結果存儲到單獨的變量並驗證值。檢查真實元素類型或標記爲#txtLoc的標籤也會很有趣。

如果你想獲得一個輸入元素的內容,你應該使用value屬性,而不是text

query("#txtLoc").value 
+0

對不起,我的睡眠剝奪狀態看來我忘了幾個細節。 '#txtLoc'是一個接收郵政編碼的HTML輸入標籤,我試圖將它放在變量'usrLoc'中以備將來使用。 會有更簡單的方法從輸入框中獲取數據嗎?我對網絡編程比較陌生,所以我在學習的同時也很努力。謝謝。 – user2426956

+0

我知道這是什麼感覺,我是一個後端人,我也需要檢查這些東西的文檔:)你應該使用'value'而不是'text',但你仍然需要提供錯誤處理程序,如果輸入可以是空。我已經更新了答案。 –

+0

謝謝你的幫助,Zdeslav。我從來不擅長閱讀書籍或教程,所以我試圖通過查看編輯器附帶的示例項目來完成這項工作,這是'.text'的來源。通常,關於某個問題的Google搜索很適合我過去學過的既定語言,但看起來使用像Dart這樣的新語言需要更多的社區參與。 – user2426956