2015-09-08 86 views
1

我的問題:根據這本書建立一個飛鏢形式。下面,我的基本樣本看起來像JS。它工作正常,但我得到這個警告:The getter value is not defined for the class Element如何創建一個飛鏢形式

我的問題:如何編寫更好的Dart代碼來避免此警告消息?謝謝。

HTML:

<form> 
    <input type="number" min="0" id="enter-x"> 
    <input type="number" min="0" id="enter-y"> 

    <input type="button" id="result" value="Submit"> 
    <input type="reset" id="raz" value="Reset"> 

    <input type="text" id="s" readonly> 
</form> 

DART:

import 'dart:html'; 
import 'dart:core'; 

main() { 
    document.querySelector('#result').onClick.listen((e) { 
     calculateS(); 
    }); 
} 

calculateS() { 
    var x = int.parse(document.querySelector('#enter-x').value); 
    var y = int.parse(document.querySelector('#enter-y').value); 
     var surface = (x * y).toString(); 
    document.querySelector('#s').value = surface; 
} 

回答

2

飛鏢有助於提示和警告,以查找程序中的錯誤。 通用Element沒有value字段。 Dart程序仍然有效,應該按預期工作,並且不會在運行時導致任何錯誤或警告,因爲實際返回的元素是更專用的TextInputElementNumberInputElement,它具有value字段。

沉默分析儀,使這更清楚加入了 「演員」

calculateS() { 
    var x = int.parse((document.querySelector('#enter-x') as NumberInputElement).value); 
    var y = int.parse((document.querySelector('#enter-y') as NumberInputElement).value); 
    var surface = (x * y).toString(); 
    (document.querySelector('#s') as TextInputElement).value = surface; 
} 

嘗試在DartPad

參見: