2016-06-14 536 views
1

我試圖跳過文件上線,我看到set功能,當我做set("myString", "hello");set("myMap.test", "world");但我很好奇,什麼是相反的?我想到unset,但是當在線查看聚合物1.0 Dart代碼的屬性部分時,我並沒有收到我想要的信息。集合的逆是什麼?

什麼是set的反轉,去除一個屬性?我的特定用例是從地圖上刪除一個關鍵,unset("myMap.testKey");

由於set在Polymer_base.dart定義,我認爲這將是文件中的某個地方休息,但我沒有看到任何「未設置」或類似。

回答

1

我不知道,如果它的工作原理,但我會從地圖上刪除元素,然後調用

notifyPath('myMap.testKey, null); 

如果值是null已經那麼這可能不會工作。

+0

問題是,我有一個計算屬性,它檢查維護映射> 0中的鍵的數量,所以如果沒有鍵,理想情況下它就準備好了。隨着密鑰解決,它將從地圖中移除。即使我將其定義爲未定義,鍵仍然會在地圖中,不是嗎? – Fallenreaper

+0

似乎是一種有效的方法。看到我更新的答案。否則,只需使用'delete'和'set(「myMap.test,undefined)'來擺脫屬性並通知聚合物它。如果這導致問題,您可以嘗試'notifyPath(path,value)'而不是'set(...)'(在'delete'之後)。 –

+0

undefined是一個JavaScript的東西,我在Dart寫這個,所以也許它只是空?缺點是即使設置爲undefined,它仍然會像在地圖中一樣循環...因此,也就是說我的方法'isEnabled => myMap.length == 0;'不是我期望的方法 – Fallenreaper