dart - Polymer Iron Flex Mixin 不起作用,但类可以

标签 dart polymer angular-dart

我使用类让 Polymer iron-flex-layout 在我的 AngularDart 组件中工作。由于它会生成弃用警告,我认为会尝试推荐的替代方案:mixin's。它们不起作用。

目前,我的 artist_component.dart 中有这个导入:

import 'package:polymer_elements/iron_flex_layout.dart';

我也试过将它添加到我的 index.html

    <link rel="import" href="packages/polymer_elements/iron_flex_layout.html">

这与使用 bower 的文档中给出的示例不同。在我的 artist_component.html 中我有:

<style is="custom-style">
  .container {
   @apply(--layout-horizontal);
  }
  .flexchild {
    @apply(--layout-flex-3);
  }
  .flexchild-2 {
    @apply(--layout-flex-9);
  }
</style>
<section class="container">
  <section class="flexchild gutter">
...

我已经尝试将导入与样式一起放入 index.html 和我的主 css 文件中,但不受影响。鉴于类(class)有效,您会认为 mixim 也有效。

最佳答案

我一直在挖掘,我找到了答案。我还发现该方法已被弃用。我的 pubspec 定义了这些版本:

polymer: ^1.0.0-rc.17
polymer_elements: ^1.0.0-rc.8

我很确定解决方案是将这行代码添加到我的 index.html 中:

<link rel="import" href="packages/polymer/polymer.html">

我不确定这是唯一的要求的原因是我一直在改变很多东西来让它工作。这是我完整的 index.html:

<!DOCTYPE html>
<html>
<head>
<title>Jazz Cat</title>
<script>
  window.Polymer = window.Polymer || {};
  window.Polymer.dom = 'shadow';
</script>

<!-- For testing using pub serve directly use: -->
<base href="/">
<!-- For testing in WebStorm use: -->
<!-- <base href="/dart/web/"> -->

<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/polymer_elements/iron_flex_layout.html">
<link href="master.css" rel="stylesheet" type="text/css" />
<style is="custom-style">
  .container {
    @apply(--layout-horizontal);
  }
  .element-index {
    @apply(--layout-flex-3);
  }
  .element-body {
    @apply(--layout-flex-9);
  }
  .element-main {
    @apply(--layout-flex-7);
  }
  .element-sidebar {
    @apply(--layout-flex-2);
  }
</style>
<script defer src="main.dart" type="application/dart"></script>
<script defer src="packages/browser/dart.js"></script>
</head>
<my-app>Loading...</my-app>
</html>

现在我开始工作了,我会将我的样式移动到一个单独的文件中。这是我使用混合类的文件之一:

<section class="container">
<section class="element-index">
<h1>{{title}}</h1>
  <paper-listbox class="scroll-list" (click)="onScroll()">
    <paper-item class="item-height" *ngFor="let artist of artists" [class.selected]="artist == selectedArtist" (click)="onSelect(artist)">
      {{artist.first_name}} {{artist.last_name}}
    </paper-item>
  </paper-listbox>
<paper-button (click)="gotoDetail()">Detail</paper-button>
<!--<paper-icon-button icon="refresh" (click)="gotoDetail()"></paper-icon-button>-->
  <!--<button (click)="gotoDetail()">View Details</button>-->
</section>
<section class="element-body">
<div *ngIf="selectedArtist != null">
  <h2>{{selectedArtist.first_name}} {{selectedArtist.last_name}}</h2>
  <!--<section class="layout horizontal">-->
  <section class="container">
    <section class="element-main">
      <!--<dl class="justified">
        <dt>Instrument:</dt><dd>{{ selectedArtist.primary_instrument }} </dd>
        <dt>Other:</dt><dd>{{ selectedArtist.other_instruments }}</dd>
        <dt>Birth:</dt><dd>{{ selectedArtist.birth_year }}</dd>
        <dt>Death:</dt><dd>{{ selectedArtist.death_year }}</dd>
      </dl>-->
      <h3>Notes</h3>
      <p>{{ selectedArtist.notes }}</p>
      <h3>Recordings</h3>
      <table class="index">
        <th>Date</th>
        <th>Title</th>
        <th>Leader</th>
        <tr *ngFor="let credit of artist_credits" >
          <td class="tableDate">{{ credit.recording_date | date:'d MMM yyyy' }}</td>
          <td>{{ credit.title }}</td>
          <td>{{ credit.first_name }} {{ credit.last_name}}</td>
        </tr>
      </table>
    </section>
    <section class="element-sidebar">
      <dl class="narrow-list">
        <dt>Instrument</dt><dd>{{ selectedArtist.primary_instrument }} </dd>
        <dt>Other</dt><dd>{{ selectedArtist.other_instruments }}</dd>
        <dt>Birth</dt><dd>{{ selectedArtist.birth_year }}</dd>
        <dt>Death</dt><dd>{{ selectedArtist.death_year }}</dd>
      </dl>
    </section>
  </section>
</div>
</section>
</section>

基于对 this question 的回答,已为 polymer 1.1 创建了一种新方法,但该方法已被弃用。

关于dart - Polymer Iron Flex Mixin 不起作用,但类可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38626873/

相关文章:

dart - 如果宽度已满,如何使行进入新行

dart - AngularDart中角度组件的错误应用程序布局组件

android - 由于当前屏幕上的更新,防止 Flutter Provider 重建前一屏幕中的小部件

ajax - Polymer.js + OAuth2

javascript - 如何使用 Google Polymer 实现纸卡的简单搜索

dart - 在其状态类中访问有状态小部件的功能? flutter

angular - Polymer LitElement 和 Angular - 从不调用渲染,不显示任何内容

dart - 如何查看 AngularDart 集合的元素?

angular - 谁拥有 Angular Dart 中的 TemplateRef 刷新周期?

dart - 如何为生产正确部署 angulardart 5.2?