飞镖 bwu_datagrid 错误
Dart bwu_datagrid error
我 运行 来自 Dart 编辑器 bwu_datagrid example 的代码:
pubspec.yaml
name: 'basicExample'
version: 0.0.1
description: A web app built using polymer.dart.
environment:
sdk: '>=1.0.0 <2.0.0'
dependencies:
browser: '>=0.10.0 <0.11.0'
polymer: '>=0.16.0 <0.17.0'
bwu_datagrid: any
js: any
transformers:
- polymer:
entry_points: web/index.html
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="scaffolded-by" content="https://github.com/google/stagehand">
<title>basicExample</title>
<link rel="import" href="packages/basicExample/app_element.html">
<link rel='stylesheet' href='example.css'>
</head>
<body>
<h3>Some table</h3>
<app-element></app-element>
<script type="application/dart">export 'package:polymer/init.dart';</script>
</body>
</html>
app_element.html
<!DOCTYPE html>
<link rel="import" href="../../packages/polymer/polymer.html">
<link rel='import' href='../../packages/bwu_datagrid/bwu_datagrid.html'>
<polymer-element name='app-element'>
<template>
<!--<link rel='stylesheet' href='packages/bwu_datagrid/asset/grid.css'>
<link rel='stylesheet' href='packages/bwu_datagrid/asset/default_theme.css' > -->
<!-- link rel='stylesheet' href='../web/example.css' -->
<style>
:host {
display: block;
width: 100%;
}
table {
width: 100%;
}
</style>
<table>
<tr>
<td valign='top' width='50%'>
<bwu-datagrid id='myGrid' style='width:600px;height:500px;'></bwu-datagrid>
</td>
<td valign='top'>
<h2>Demonstrates:</h2>
<ul>
<li>basic grid with minimal configuration</li>
</ul>
<h2>View Source:</h2>
<ul>
<li><A href='https://github.com/bwu-dart/bwu_datagrid/blob/master/example/src/e01_simple/app_element.dart' target='_sourcewindow'> View the source for this example on Github</a></li>
</ul>
</td>
</tr>
</table>
</template>
<script type='application/dart' src='app_element.dart'></script>
</polymer-element>
app_element.dart
library app_element;
import 'dart:math' as math;
import 'package:polymer/polymer.dart';
import 'package:bwu_datagrid/datagrid/helpers.dart';
import 'package:bwu_datagrid/bwu_datagrid.dart';
@CustomTag('app-element')
class AppElement extends PolymerElement {
AppElement.created() : super.created();
BwuDatagrid grid;
List<Column> columns = [
new Column(id: 'title', name: 'Title', field: 'title'),
new Column(id: 'duration', name: 'Duration', field: 'duration'),
new Column(id: '%', name: '% Complete', field: 'percentComplete'),
new Column(id: 'start', name: 'Start', field: 'start'),
new Column(id: 'finish', name: 'Finish', field: 'finish'),
new Column(
id: 'effort-driven', name: 'Effort Driven', field: 'effortDriven')
];
var gridOptions = new GridOptions(enableCellNavigation: true, enableColumnReorder: false);
@override
void attached() {
super.attached();
try {
grid = $['myGrid'];
var data = new MapDataItemProvider(); //List<Map>(500);
for (var i = 0; i < 500; i++) {
data.items.add(new MapDataItem({
'title': 'Task ${i}',
'duration': '5 days',
'percentComplete': new math.Random().nextInt(100).round(),
'start': '01/01/2009',
'finish': '01/05/2009',
'effortDriven': (i % 5 == 0)
}));
}
grid.setup(dataProvider: data, columns: columns, gridOptions: gridOptions);
} on NoSuchMethodError catch (e) {
print('$e\n\n${e.stackTrace}');
print ('it is not worked -1-');
} on RangeError catch (e) {
print('$e\n\n${e.stackTrace}');
print ('it is not worked -2-');
} on TypeError catch (e) {
print('$e\n\n${e.stackTrace}');
print ('it is not worked -3-');
} catch (e) {
print('$e');
print ('it is not worked -4-');
}
}
}
当我在 Dart 编辑器中 运行 这段代码时,我得到一个错误:
Observatory listening at http://127.0.0.1:59681/
Exception: Uncaught Error: Invalid argument (value): Not a valid class token: ""
Stack Trace:
#0 CssClassSetImpl._validateToken (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/css_class_set.dart:13)
#1 CssClassSetImpl.add (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/css_class_set.dart:108)
#2 BwuDatagrid._createColumnHeaders (package:bwu_datagrid/bwu_datagrid.dart:749:21)
#3 BwuDatagrid._finishInitialization (package:bwu_datagrid/bwu_datagrid.dart:369:7)
#4 BwuDatagrid._init (package:bwu_datagrid/bwu_datagrid.dart:333:7)
#5 BwuDatagrid.setup.<anonymous closure> (package:bwu_datagrid/bwu_datagrid.dart:184:9)
#6 Future.Future.<anonymous closure> (dart:async/future.dart:118)
#7 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:16)
#8 _Timer._Timer.<anonymous closure> (dart:html:42314)
为什么我会遇到这个问题?谢谢。
我使用 CentOS 7 和 Dart 1.10.0。
这是一个已知问题,由 Dart 1.10 中的重大更改引起。
- https://github.com/bwu-dart/bwu_datagrid/pull/108
- https://github.com/bwu-dart/bwu_datagrid/issues/106
我尝试尽快发布更新版本。
我 运行 来自 Dart 编辑器 bwu_datagrid example 的代码:
pubspec.yaml
name: 'basicExample'
version: 0.0.1
description: A web app built using polymer.dart.
environment:
sdk: '>=1.0.0 <2.0.0'
dependencies:
browser: '>=0.10.0 <0.11.0'
polymer: '>=0.16.0 <0.17.0'
bwu_datagrid: any
js: any
transformers:
- polymer:
entry_points: web/index.html
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="scaffolded-by" content="https://github.com/google/stagehand">
<title>basicExample</title>
<link rel="import" href="packages/basicExample/app_element.html">
<link rel='stylesheet' href='example.css'>
</head>
<body>
<h3>Some table</h3>
<app-element></app-element>
<script type="application/dart">export 'package:polymer/init.dart';</script>
</body>
</html>
app_element.html
<!DOCTYPE html>
<link rel="import" href="../../packages/polymer/polymer.html">
<link rel='import' href='../../packages/bwu_datagrid/bwu_datagrid.html'>
<polymer-element name='app-element'>
<template>
<!--<link rel='stylesheet' href='packages/bwu_datagrid/asset/grid.css'>
<link rel='stylesheet' href='packages/bwu_datagrid/asset/default_theme.css' > -->
<!-- link rel='stylesheet' href='../web/example.css' -->
<style>
:host {
display: block;
width: 100%;
}
table {
width: 100%;
}
</style>
<table>
<tr>
<td valign='top' width='50%'>
<bwu-datagrid id='myGrid' style='width:600px;height:500px;'></bwu-datagrid>
</td>
<td valign='top'>
<h2>Demonstrates:</h2>
<ul>
<li>basic grid with minimal configuration</li>
</ul>
<h2>View Source:</h2>
<ul>
<li><A href='https://github.com/bwu-dart/bwu_datagrid/blob/master/example/src/e01_simple/app_element.dart' target='_sourcewindow'> View the source for this example on Github</a></li>
</ul>
</td>
</tr>
</table>
</template>
<script type='application/dart' src='app_element.dart'></script>
</polymer-element>
app_element.dart
library app_element;
import 'dart:math' as math;
import 'package:polymer/polymer.dart';
import 'package:bwu_datagrid/datagrid/helpers.dart';
import 'package:bwu_datagrid/bwu_datagrid.dart';
@CustomTag('app-element')
class AppElement extends PolymerElement {
AppElement.created() : super.created();
BwuDatagrid grid;
List<Column> columns = [
new Column(id: 'title', name: 'Title', field: 'title'),
new Column(id: 'duration', name: 'Duration', field: 'duration'),
new Column(id: '%', name: '% Complete', field: 'percentComplete'),
new Column(id: 'start', name: 'Start', field: 'start'),
new Column(id: 'finish', name: 'Finish', field: 'finish'),
new Column(
id: 'effort-driven', name: 'Effort Driven', field: 'effortDriven')
];
var gridOptions = new GridOptions(enableCellNavigation: true, enableColumnReorder: false);
@override
void attached() {
super.attached();
try {
grid = $['myGrid'];
var data = new MapDataItemProvider(); //List<Map>(500);
for (var i = 0; i < 500; i++) {
data.items.add(new MapDataItem({
'title': 'Task ${i}',
'duration': '5 days',
'percentComplete': new math.Random().nextInt(100).round(),
'start': '01/01/2009',
'finish': '01/05/2009',
'effortDriven': (i % 5 == 0)
}));
}
grid.setup(dataProvider: data, columns: columns, gridOptions: gridOptions);
} on NoSuchMethodError catch (e) {
print('$e\n\n${e.stackTrace}');
print ('it is not worked -1-');
} on RangeError catch (e) {
print('$e\n\n${e.stackTrace}');
print ('it is not worked -2-');
} on TypeError catch (e) {
print('$e\n\n${e.stackTrace}');
print ('it is not worked -3-');
} catch (e) {
print('$e');
print ('it is not worked -4-');
}
}
}
当我在 Dart 编辑器中 运行 这段代码时,我得到一个错误:
Observatory listening at http://127.0.0.1:59681/
Exception: Uncaught Error: Invalid argument (value): Not a valid class token: ""
Stack Trace:
#0 CssClassSetImpl._validateToken (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/css_class_set.dart:13)
#1 CssClassSetImpl.add (file:///mnt/data/b/build/slave/dartium-lucid64-full-stable/build/src/dart/sdk/lib/html/html_common/css_class_set.dart:108)
#2 BwuDatagrid._createColumnHeaders (package:bwu_datagrid/bwu_datagrid.dart:749:21)
#3 BwuDatagrid._finishInitialization (package:bwu_datagrid/bwu_datagrid.dart:369:7)
#4 BwuDatagrid._init (package:bwu_datagrid/bwu_datagrid.dart:333:7)
#5 BwuDatagrid.setup.<anonymous closure> (package:bwu_datagrid/bwu_datagrid.dart:184:9)
#6 Future.Future.<anonymous closure> (dart:async/future.dart:118)
#7 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:16)
#8 _Timer._Timer.<anonymous closure> (dart:html:42314)
为什么我会遇到这个问题?谢谢。
我使用 CentOS 7 和 Dart 1.10.0。
这是一个已知问题,由 Dart 1.10 中的重大更改引起。
- https://github.com/bwu-dart/bwu_datagrid/pull/108
- https://github.com/bwu-dart/bwu_datagrid/issues/106
我尝试尽快发布更新版本。