2015-09-04 2 views
2

Так что я пытался использовать <template is="dom-if">, но я просто не могу заставить его работать.Polymer-Dart 1.0 dom-if not working

<template is="dom-repeat" items="{{row}}" as="project"> 
    <template is="dom-if" if="{{project == null}}"> 
     <span>Untitled project</span> 
    </template> 
    <template is="dom-if" if="{{project != null}}"> 
     <span>{{project.name}}</span> 
    </template> 
</template> 

По некоторым причинам, я никогда и не показали Untitled project хотя есть 2 элемента, которые null.

Являются ли выражения, которые еще не доступны в предварительном просмотре разработчика Polymer-Dart?

ответ

2

Я не знаю о Полимер-Дарт, но в выражениях Polymer 1.0 больше не поддерживаются (docs).

Для достижения этой цели вы можете использовать computed bindings.

5

Фактически вы можете просто использовать простой {{project}} и {{! Project}} привязку. ! является одним из единственных выражений, разрешенных для полимера 1.0. Он использует фальсификацию JS, поэтому нулевое значение будет «false», но так же будет пустой список/etc.

Вам также может понадобиться явно инициализировать значение NULL в вашем готовом методе, а также:

ready() { if (project == null) set('project', null); } 

В принципе, для начальных значений null мы на самом деле отправить неопределенными в сторону Js. Однако привязки вообще не будут выполняться для неопределенных значений, поэтому вам необходимо затем явно назначить null, чтобы гарантировать, что dom-ifs будет оценивать выражение. Мы делаем это, чтобы избежать уведомления о дополнительных изменениях для каждого свойства при запуске каждого элемента.