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

Bas*_*der 2 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>
Run Code Online (Sandbox Code Playgroud)

出于某些原因,Untitled project虽然有2个元素,但我从未被展示过null.

Polymer-Dart的开发者预览版中是否还没有表达式?

小智 5

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

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

ready() {   if (project == null) set('project', null); }
Run Code Online (Sandbox Code Playgroud)

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