我创建了我的库:
// web/com/jessewarden/workoutlogger/workoutloggerlib.dart
library workoutloggerlib;
import 'dart:async';
import 'dart:html';
import 'package:polymer/polymer.dart';
part "types/WorkoutTypes.dart";
part "vo/Exercise.dart";
part "vo/Set.dart";
part "vo/Workout.dart";
part "views/SetView.dart";
part "views/SetView.html";
我的SetView.dart:
part of workoutloggerlib;
@CustomTag('set-view')
class SetView extends PolymerElement
{
@published
Set set;
SetView.created() : super.created();
}
它与HTML相关联:
<polymer-element name="set-vew" attributes="count">
<template>
<div>
<h3>{{set.name}}</h3>
<span class="label label-primary">Goal</span>
<div class="input-group">
<span class="input-group-addon">Reps</span>
<input type="text" class="form-control disabled" value={{set.goalReps}}>
</div>
<div class="input-group">
<span class="input-group-addon">Weight</span>
<input type="text" class="form-control" value="{{set.goalWeight}}">
<span class="input-group-addon">lbs</span>
</div>
</div>
</template>
<script type="application/dart" src="SetView.dart"></script>
</polymer-element>
然而,当她编译时,在跑步时我得到:
'http://somelocalserver/WorkoutLogger/web/com/jessewarden/workoutlogger/views/SetView.dart': error: line 1 pos 6: url expected
part of workoutloggerlib;
^: http://somelocalserver/WorkoutLogger/web/com/jessewarden/workoutlogger/views/SetView.dart
Internal error: 'http://somelocalserver/WorkoutLogger/web/com/jessewarden/workoutlogger/views/SetView.dart': error: line 1 pos 6: url expected
part of workoutloggerlib;
^
Internal error: 'http://somelocalserver/WorkoutLogger/web/com/jessewarden/workoutlogger/views/SetView.dart': error: line 1 pos 6: url expected
part of workoutloggerlib;
^
如果我手动导入每个文件的类,放弃我的库,它可以正常工作。显然这不是所希望的,因为代码不可管理,具有更严格的依赖性,并且更难以重构。
答案 0 :(得分:1)
我不确定这是否仍然有效,但我读到最好将每个组件设置为自己的库(库不是包 - 您可以在包中包含多个库)。 我总是这样做,我从来没有遇到过问题。 您可以查看一些示例
值得一提的是,我们必须使用一个单独的包,我们将示例页面符号链接到。
目前无法在示例目录(仅限Web)中构建页面,并且不可能在Web中使用页面和在lib中的元素(在同一个包中),因为必要的聚合物变换器设置会发生冲突)。 您也可以在Web中使用元素,或者在lib中使用自己的包中的元素,并使用lib中的元素导入包。
你有一个拼写错误 - 可能只是你粘贴的代码 - 但无论如何
<!-- should be name="set-view" -->
<polymer-element name="set-vew" attributes="count">