Polymer-Dart 1.0 dom-如果不起作用

时间:2015-09-04 11:56:18

标签: dart polymer dart-polymer

所以我试图使用<template is="dom-if">,但我无法使其发挥作用。

<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 个答案:

答案 0 :(得分:5)

您实际上可以使用简单的{{project}}和{{!project}}绑定。 !是聚合物1.0中允许的唯一表达式之一。它使用JS falsyness,因此null值将为“false”,但空列表/ etc也是如此。

您可能还需要在ready方法中将值显式初始化为null:

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

基本上,对于null的初始值,我们实际上将未定义发送到js端。但是,对于未定义的值,绑定根本不会运行,因此您需要显式指定null以确保dom-ifs将评估表达式。我们这样做是为了避免在每个元素启动时为每个属性提供额外的更改通知。

答案 1 :(得分:2)

我不知道Polymer-Dart,但是在Polymer 1.0中不再支持表达式(docs)。

您可以使用computed bindings来实现相同的目标。