Dart Polymer:将 html 文件绑定到脚本会导致损坏的 bootstrap.dart 包含“%5C”字符
Dart Polymer: binding html files to scripts results in broken bootstrap.dart containing "%5C" characters
执行 Pub Get 和 Pub Upgrade 后,我的自定义 PolymerElements 不再工作。在我看来
<script type="application/dart" src="view.dart"></script>
解释不正确。在我的 index.html_bootstrap.dart 中,它被列为: import 'dialog%5Cview.dart' as smoke_1;
“%5C” ( \ ) 应该是一个斜杠 ( / ),我很确定它不应该被转义。我尝试使用 64 位的 dart 稳定版 (1.8.5) 和开发版 (1.9.0) Windows.
我已经尝试将我的包恢复到他们以前的版本,但由于我没有在我的 pubspec 文件中限制它们,我无法确定在我的更改之前哪些版本有效。在我正在进行的另一个 dart 聚合物项目中,我使用相同的设置(扩展聚合物元素)并且它仍然有效。 index.html_bootstrap.dart 中的等效位置为:import 'dialog/view.dart' as smoke_1;
(编辑)一些(缩短的)代码:
/web/dialog/error/view.html
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/paper_elements/paper_dialog.html">
<link rel="import" href="packages/core_elements/core_animated_pages.html">
<polymer-element name="error-view">
<template>
<style>
paper-dialog {
margin-top: 20px;
height: 400px;
width: 600px; }
</style>
<paper-dialog id="extendedNode" heading="{{dialogtitle}}" vertical autoCloseDisabled=true transition="paper-transition-center" opened=true>
<content>
<core-animated-pages selected="{{page}}" valueattr="id" transitions="hero-transition cross-fade">
<section id="0">
<p cross-fade>A system error occured while connecting with the server.</p>
<br>
<p cross-fade>Error message: {{dialogtext}}</p>
</section>
</core-animated-pages>
</content>
</paper-dialog>
</template>
<script type="application/dart" src="view.dart"></script>
</polymer-element>
/web/dialog/error/view.飞镖
import 'package:polymer/polymer.dart';
import '../view.dart'; // <- the base class 'DialogView'
@CustomTag('error-view')
class ErrorView extends DialogView{
ErrorView.created() : super.created(){
componentName = 'error-view';
this.dialogtitle = 'System Error';
}
}
/web/dialog/view.飞镖
import 'package:polymer/polymer.dart';
import 'dart:html';
import 'package:intl/intl.dart';
import '../locale/de.dart' as de;
class DialogView extends PolymerElement {
@observable int page;
//there are a lot of helper functions and variables in here
}
我使用多对扩展基本组件的组件(没有 view.html 但只有一个 view.dart 允许我在一个列表中保存和操作不同的对话框。这工作得很好直到我做了Pub Get / Upgrade 都没有通过修复缓存解决。使用类似结构的项目仍然可以正常工作。
这暂时解决了问题:
pubspec.yaml
code_transformers: '<= 0.2.5'
执行 Pub Get 和 Pub Upgrade 后,我的自定义 PolymerElements 不再工作。在我看来
<script type="application/dart" src="view.dart"></script>
解释不正确。在我的 index.html_bootstrap.dart 中,它被列为: import 'dialog%5Cview.dart' as smoke_1;
“%5C” ( \ ) 应该是一个斜杠 ( / ),我很确定它不应该被转义。我尝试使用 64 位的 dart 稳定版 (1.8.5) 和开发版 (1.9.0) Windows.
我已经尝试将我的包恢复到他们以前的版本,但由于我没有在我的 pubspec 文件中限制它们,我无法确定在我的更改之前哪些版本有效。在我正在进行的另一个 dart 聚合物项目中,我使用相同的设置(扩展聚合物元素)并且它仍然有效。 index.html_bootstrap.dart 中的等效位置为:import 'dialog/view.dart' as smoke_1;
(编辑)一些(缩短的)代码:
/web/dialog/error/view.html
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/paper_elements/paper_dialog.html">
<link rel="import" href="packages/core_elements/core_animated_pages.html">
<polymer-element name="error-view">
<template>
<style>
paper-dialog {
margin-top: 20px;
height: 400px;
width: 600px; }
</style>
<paper-dialog id="extendedNode" heading="{{dialogtitle}}" vertical autoCloseDisabled=true transition="paper-transition-center" opened=true>
<content>
<core-animated-pages selected="{{page}}" valueattr="id" transitions="hero-transition cross-fade">
<section id="0">
<p cross-fade>A system error occured while connecting with the server.</p>
<br>
<p cross-fade>Error message: {{dialogtext}}</p>
</section>
</core-animated-pages>
</content>
</paper-dialog>
</template>
<script type="application/dart" src="view.dart"></script>
</polymer-element>
/web/dialog/error/view.飞镖
import 'package:polymer/polymer.dart';
import '../view.dart'; // <- the base class 'DialogView'
@CustomTag('error-view')
class ErrorView extends DialogView{
ErrorView.created() : super.created(){
componentName = 'error-view';
this.dialogtitle = 'System Error';
}
}
/web/dialog/view.飞镖
import 'package:polymer/polymer.dart';
import 'dart:html';
import 'package:intl/intl.dart';
import '../locale/de.dart' as de;
class DialogView extends PolymerElement {
@observable int page;
//there are a lot of helper functions and variables in here
}
我使用多对扩展基本组件的组件(没有 view.html 但只有一个 view.dart 允许我在一个列表中保存和操作不同的对话框。这工作得很好直到我做了Pub Get / Upgrade 都没有通过修复缓存解决。使用类似结构的项目仍然可以正常工作。
这暂时解决了问题:
pubspec.yaml
code_transformers: '<= 0.2.5'