annotations - 如何创建自定义的Polymer和PolymerDart注释?

标签 annotations dart polymer dart-polymer

我正在研究PolymerDart以及可以应用于dart文件的各种注释。就是:@Property@property@observe@reflectable@PolymerRegister@HtmlImport

因此,我开始研究Dart的概念以及如何为它们做注释。我在stackoverflow上看到可以做这样的事情。

class Datatable {
  final String name;
  const DataTable(this.name);
}

可以轻松地在构造函数中轻松地执行一些附加信息。
class Datatable {
  final String name;
  const DataTable(this.name) {
    console.log("$name was referenced.");
  }
}

因此,我可以创建和实现我们可以利用的各种注释,但这就是开始变得困惑的地方。

我很好奇是否有办法为Polymerdart创建注释?是大多数情况下是被锁定的,还是有办法创建执行简单功能的方法,例如:创建执行@Property(computed:"")功能的Annotation。

我想为我们的团队创建某种定制。

作为记录,我知道我可以做类似的事情
const myCustomAnnotation = const Property();

这将允许我做:
@myCustomAnnotation

我当时以为可以做类似的事情:
class myCustomComputed extends Property {
  final String functionName;
  const myCustomComputed() : Property(computed: this.functionName);
}

让我做类似的事情:
@myCustomComputed("testFunction(varA)")

最佳答案

这是一个很大的话题,但是简短的答案是,是的,您描述的内容在技术上是可行的,但并非无关紧要。

Dart批注可在运行时通过反射获得,但pub transformers最常在构建过程中使用。转换器的目的是在运行前将 Assets (例如dart代码)修改为某种新形式。

您上面提到的Polymer注解由Polymer transformer处理。该转换器处理识别您上面提到的注释,并自动重写带注释的代码,以包括所有必要的实现和连接,从而使所有行为均像我们期望的Polymer元素一样。

因此,没有什么可以阻止您定义自己的注释和转换器,包括在现有的Polymer转换器上构建的注释和转换器,并将其打包以供您自己或他人使用。

我会注意,尽管这是一个比较复杂的主题(请参阅Polymer转换器),并且似乎没有几个简单的代码重写转换器示例可以以此为基础。

关于annotations - 如何创建自定义的Polymer和PolymerDart注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645080/

相关文章:

java - 将请求转发到 Spring MVC 中的另一个 Controller

java - 在 eclipse 中为生成的 toString、hashCode 和 equals 添加注解

java - 注释中平台特定的换行符

annotations - iOS 4.2 中的 map 注释和 MKMapView 有问题吗?

dart - AngularDart ng-更改

flutter - 如何从 Dart 中的 switch 语句获取常量字符串

Polymer 2.0 - 尝试实现 HTML5 拖放

dart - 为什么使用 angular.dart 0.10 和 ng-view 会出现 js 执行错误?

polymer - 使用 Polymer 1.0 的单页应用程序 (SPA) 示例

css - 带有 HTML 导入的 polymer 自定义元素样式