【问题标题】:Polymer-Dart 1.0 dom-if not workingPolymer-Dart 1.0 dom-如果不工作
【发布时间】:2015-09-04 11:56:18
【问题描述】:

所以我试图使用<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>

由于某些原因,尽管有两个元素是 null,但我从未得到显示 Untitled project

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

【问题讨论】:

    标签: dart polymer dart-polymer


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多