使用一個角度表達式,我試圖顯示一個範圍變量是否是一個數組。
我試圖用variable.constructor === Array
來檢查相同的結果,但總是在表達式中顯示false
。角度表達無法使用構造函數屬性告訴變量類型
當我使用範圍函數return variable.constructor === Array
時,我得到了正確的結果。
有人可以告訴,爲什麼表達式以這種方式行爲。 另外,可以如同內聯表達式語句一樣進行檢查。
簽出顯示同樣問題的Plunker,here
謝謝。
使用一個角度表達式,我試圖顯示一個範圍變量是否是一個數組。
我試圖用variable.constructor === Array
來檢查相同的結果,但總是在表達式中顯示false
。角度表達無法使用構造函數屬性告訴變量類型
當我使用範圍函數return variable.constructor === Array
時,我得到了正確的結果。
有人可以告訴,爲什麼表達式以這種方式行爲。 另外,可以如同內聯表達式語句一樣進行檢查。
簽出顯示同樣問題的Plunker,here
謝謝。
沒有什麼已知的Array,所以你基本上將一個值與undefined進行比較。
要測試一個值是一個數組,可以使用名爲isArray()的內置Angular函數。
一看便知這裏瞭解更多信息:Angular expression to check if model is array or object
在您的範圍內沒有名爲Array
的變量,因此表達式variable.constructor === Array
基本上返回variable.constructor === undefined
的結果。
這就是爲什麼它總是假的。
你必須在JS使用Array.isArray(variable)
。
更多信息on MDN