2016-06-14 2 views
1

Я пытался перескакивать документы на линии, и я вижу функцию set, когда я делаю set("myString", "hello"); или set("myMap.test", "world");, но мне было любопытно, что такое инверсия? Я вычислил unset, но, смотря онлайн в разделе «Свойства» кода «Полимер 1.0 Дарт», я не получал необходимую информацию.Что такое инверсия множества?

Что такое обратный набору, чтобы удалить атрибут? Мой конкретный случай использования, чтобы удалить ключ из карты, unset("myMap.testKey");

Поскольку set определяется в Polymer_base.dart, я думал, что это будет отдыхать где-то в этом файле, но я не видел ни одного «снята с охраны» или подобное.

ответ

1

Я не знаю, если это работает, но я бы удалить элемент с карты, а затем вызвать

notifyPath('myMap.testKey, null); 

Если значения был null уже тогда это, вероятно, не будет работать.

+0

проблема заключается в том, что у меня есть вычисленное свойство, которое проверяет количество ключей в карте обслуживания> 0, поэтому в идеале, если нет ключей, он готов к работе. Когда ключ будет разрешен, он удаляется из карты. Даже если я определяю его как неопределенный, ключ будет на карте еще в этом случае, нет? – Fallenreaper

+0

Кажется, это действительный путь. См. Мой обновленный ответ. В противном случае просто используйте 'delete' и' set ("myMap.test", undefined) ', чтобы избавиться от свойства и сообщить об этом Polymer. Если это вызывает проблемы, вы можете попробовать 'notifyPath (путь, значение)' вместо 'set (...)' (после 'delete'). –

+0

undefined - это javascript, я пишу это в Dart, так что, возможно, это будет просто нулевым? Недостатком является то, что даже если установить его на неопределенный, он говорит, что он будет перебирать его по-прежнему, как на карте ... Так что, возможно, мой подход 'isEnabled => myMap.length == 0;' не является нужный подход – Fallenreaper