首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dartEditor文件层次结构与库/部件逻辑

dartEditor文件层次结构与库/部件逻辑
EN

Stack Overflow用户
提问于 2013-02-02 20:16:46
回答 1查看 230关注 0票数 1

当我用DartEditor在Windows8中创建一个‘’时,它给了我这个层次结构

代码语言:javascript
复制
ClientView/
  packages/
  pubspec.lock
  pubspec.yaml
  web/
    packages/
    clientview.css
    clientview.dart
    clientview.dart.js
    clientview.dart.js.deps
    clientview.dart.js.map
    clientview.html

然后添加lib/ file:

代码语言:javascript
复制
  web/
    ...
    lib/
      src/
        canvas.dart
        i_drawable.dart
        node.dart
      client_canvas.dart
    ...

client_canvas.dart文件

代码语言:javascript
复制
library client_view;

import 'dart:html';
import 'package:meta/meta.dart'; 

// Interface
part 'src/i_drawable.dart';

// Class
part 'src/canvas.dart';
part 'src/node.dart';

在“部件”关键字后面包含的每个文件中,我添加了以下一行:

代码语言:javascript
复制
part of client_view;

但是似乎没有一个类可以被其他的dart代码访问。

代码语言:javascript
复制
class Canvas implements IDrawable // no such type 'IDrawable'
abstract class Node implements IDrawable // no such type 'IDrawable'
class CustomNode extends Node // no such type 'Node' (if try to create a custom node)

我想这是酒吧和图书馆的组织方式,我还没有理解。

因此,我试图创建一个库,在同一个项目中,我想在clientview.dart文件中导入这个库,这个库由clientview.html文件调用。

您的帮助将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2013-02-02 20:45:31

由于您使用的是相对导入,而且所有的东西似乎都是同一个库的一部分,所以我没有看到出现这些错误的明显原因。也许你可以分享更多的细节。

不过,您可能应该重新组织您的源树,使其更符合Pub标准。web/lib/都应该是顶级目录,否则您将无法对自己的库进行package:导入。这就是为什么建议web/只包含入口点(带有main()方法的脚本)的原因之一,其他的东西都应该在lib/中。

而且,我会非常谨慎地使用part。我发现将几乎每个文件定义为库并只导入它们要好得多。它使每个文件的依赖关系更加清晰,并且允许使用者只导入接口,而不是导入实现。export使构建一个公开另一个定义的库成为可能。

最后,一个样式nit: Dart不是C#,我们在接口上没有使用那个丑陋的'I‘前缀:-)只需命名您的接口Drawable

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14666068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档