在聚合物项目上转换 dart2js 时出错

2024-04-16

不支持的操作:无法在反射中使用ownerName,因为它未包含在@MirrorsUsed 注释中。

ownerName只是聚合物元素上的已发布属性。我知道有一些这样的东西(在网络上,而不是在这里),但没有一个有可靠的答案......

我还在下面得到了这个:

NoSuchMethodError:找不到方法:'Symbol(“标题”)'

任何人有任何想法。已经为此苦苦挣扎了 3 个小时,准备扔掉聚合物。虽然在 dartium 中很有趣,但如果它不能转换为 JS,我认为它没有真正的用处。

import 'package:polymer/polymer.dart';
import 'package:google_postendpoint_v1_api/postendpoint_v1_api_browser.dart';
import 'package:google_postendpoint_v1_api/postendpoint_v1_api_client.dart';
import 'dart:math';
//import 'package:intl/intl.dart';


/**
 * A Polymer post element.
 */
@CustomTag('post-element')
class SoberSky extends PolymerElement {
  @published int count = 0;
  @published String ownerName = "Casey";
  @published int ownerId = 888;
  @published int postId = 333;
  @published String content = "yo ho ho, and a bottle of rumsky!";
  @published String postContent = "This is an example of post content";

  @published int getOwnerId = 333;
  @published CollectionResponse_Comment listComment;
  @published CollectionResponse_Post listPost;
  @published String listCommentHTML;
  @published Post currentPost;
  @published bool yes = false;
  Postendpoint endpoint = new Postendpoint();
  var rng = new Random();

  var commentList;

  SoberSky.created() : super.created() {
    endpoint.rootUrl = "http://localhost:8888/"; // set the root URL
  }

  void getListComment([int tempPostId]) {
    if (tempPostId == null) {
      tempPostId = postId;
    }
    endpoint.listComment( tempPostId ).then((CollectionResponse_Comment commentCollection){
          this.listComment = commentCollection;
    }).catchError((e) => handleError(e));
  }

  void getPost() {
    endpoint.getPost( postId ).then((Post loadedMessage) {
      currentPost = loadedMessage; 
      getListComment(currentPost.key);
    }).catchError((e) => handleError(e));
  }

  void submitComment() {
    int id = rng.nextInt(1000);
    Comment comment = new Comment.fromJson({});
    comment.id = id;
    comment.content = content;
    comment.postId = postId;
    comment.ownerName = ownerName;
    comment.ownerId = ownerId;

    endpoint.insertComment( comment ).then((Comment savedComment) => endpoint.getComment(id)).
      then((Comment loadedMessage) {
        print(loadedMessage.content);
        getListComment(loadedMessage.postId);
      }).catchError((e) => handleError(e));  
  }

  void submitPost(){
    postId = rng.nextInt(1000);
    Post post = new Post.fromJson({});
    post.key = postId;
    post.ownerName = ownerName;
    post.ownerId = ownerId;
    post.title = postContent;

    endpoint.insertPost( post ).then((Post savedPost) => endpoint.getPost(postId)).
    then((Post loadedMessage) {
      print(loadedMessage.title);
      getPost();
      getListComment(loadedMessage.key);
    }).catchError((e) => handleError(e));
  }

  void handleError(Error e) {
    print("We had an error: ");
    print(e.toString());
  }

  @override
  void attached() {
  }
}

HTML Polymer 元素

<polymer-element name="click-counter" attributes="count">
  <template>
    <form action="javascript:void(0);" >
      <div class="entry">
        <label>Enter Post:</label>
        <input id="subject" type="text" value="{{postContent}}" size="45" maxlength="255">
        <button on-click="{{submitPost}}" class="btn btn-success" >Submit Post</button>    <br>

      </div>
    </form>
    <div class="post">  
      <h3>{{ currentPost.ownerName }}</h3>
      <p>{{ currentPost.title }}</p>
      <p>This is the postId: {{ currentPost.key }}</p>
  <p class="timestamp">{{ currentPost.uploadTime }}</p>
  <template repeat="{{comment in listComment.items}}">
    <div class="comment">
      <h3>{{ comment.ownerName }}</h3>
      <p>{{ comment.content }}</p>
      <p>This is the commentId: {{ comment.id }}</p>
      <p class="timestamp">{{ comment.formatDate }}</p>
        </div>
      </template>
      <form action="javascript:void(0);">
        <label>Enter Comment:</label>
        <input id="subject" type="text" value="{{content}}" size="45" maxlength="255">
            <button on-click="{{submitComment}}" class="btn btn-success">Submit Comment</button>    <br>
      </form>  
     </div>  
   </template>
  <script type="application/dart" src="clickcounter.dart"></script>  
</polymer-element>

我还没见过你的Unsupported operation信息。也许最近发生了一些变化。你的NoSuchMethodError当类的属性仅由聚合物表达式 (HTML) 引用时,这种情况很常见,因为树摇动会删除所有未引用的代码,并且尚未为此计算聚合物表达式。这@MirrorsUsed注释有助于弥补这一差距。

问题出在你的Post类,因为它的属性仅在聚合物表达式中引用

<div class="post">  
  <h3>{{ currentPost.ownerName }}</h3>
  <p>{{ currentPost.title }}</p>
  <p>This is the postId: {{ currentPost.key }}</p>
  <p class="timestamp">{{ currentPost.uploadTime }}</p>

要在您的属性出现时更新您的视图currentPost你应该做出改变Post类如

class Post extends Object with Observable {
  @observable String ownerName;
  @observable String title;
  ...
}

如果您有类似的注释@reflectable, @published, or @observable你不需要@MirrorsUsed.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在聚合物项目上转换 dart2js 时出错 的相关文章

  • 为什么 Dart 中的原生包装函数与非常轻量级的“DEFINE NATIVE ENTRY”函数相比如此重量级?

    我不明白 为什么要这样保证 这是自定义本机函数的包装器dart runtime vm native entry cc 它适用于想要编写的 Dart 程序员native extensions void NativeEntry NativeCa
  • 是否可以在 Flutter 中创建自定义快速设置图块?

    我搜索了 Flutter 文档并用谷歌搜索了这个 但结果为零 我正在开发我的第一个 Android Flutter 应用程序 我想为其创建一个自定义的快速设置图块 我的目标是牛轧糖及以上 我知道这在 Java 和 Kotlin 中是可能的
  • 如何让 pub build 在 dart 聚合物项目上使用源映射

    On a 飞镖聚合物项目 https www dartlang org polymer 当我进行调试时酒吧建设 https www dartlang org tools pub cmd pub build html像这样 pub build
  • Dart 2 类的构造函数与其他语言的多态性非常相似

    我需要用 a 来表示一张照片Dart 2班级 照片可以是矩形的 or circular 因此 通过多态性我可以写 import dart math class Photo double width double height double
  • 添加对 json 数据的“Future”api 调用作为无限滚动 Flutter Gallery 示例项目

    尝试学习新的 flutter 框架 看起来非常有前途 完成所有在线演示后 我现在尝试将外部数据添加到 pesto 部分中的 flutter gallery 示例项目中 这些数据可以通过每 10 个项目调用一次新的 Future 数据来无限滚
  • 如何让 BottomNavigationBar 粘在键盘颤动的顶部

    我正在尝试制作一个简单的聊天应用程序 所以我创建了一个脚手架和我的身体 将是消息和我的bottomNavigationBar将是我的打字字段和发送图标 我添加了一个文本字段 但键入时导航栏被键盘隐藏 这是我的代码BottomNavigati
  • 将 Flutter 前端与适用于 Android 和 iOS 的 .NET Core 后端相结合

    目前在一家使用 NET 不是 Core 的公司工作 但希望切换到 NET Core 并想通过创建一个具有 Flutter io 前端和 NET Core 后端的应用程序来实现这一目标 带后端的应用程序只是为了了解 NET Core 的功能
  • Flutter“Mailer”API 多图像附件

    我正在制作一个简单的应用程序 用于从用户获取个人信息和图像数量 然后通过后端邮件 API 通过一键单击按钮发送它们 到目前为止 我可以通过邮件获取和发送 FormData 但我不知道如何发送图像数组 我已经尝试了几个 API 但 Maile
  • flutter stepper 小部件 - 验证各个步骤中的字段

    我正在使用步进器小部件来收集用户信息并对其进行验证 我需要在每个步骤调用 API 因此在每个继续按钮的步骤中验证每个字段 我正在使用表单状态和表单小部件 但是问题是它验证步进器中所有步骤中的整个字段 我如何仅验证步进器中的单个步骤 我浏览了
  • Flutter中如何在弹出屏幕后调用函数更新值?

    屏幕 1 显示带有添加按钮的项目列表 屏幕 2 用于将新项目添加到列表的表单 屏幕 2 gt gt 屏幕 1 在屏幕 2 中调用 navigator pop 时 如何在屏幕 1 中调用方法 setState 更新列表 谁能帮我吗 我不想再次
  • DART:将来 then 的语法

    我不明白的语法then clause 1 myFuture 6 then erg gt print erg What s erg gt expr语法上 我以为这会是一个函数 但是 then callHandler2 erg 不起作用 错误
  • GetX 解绑流

    我正在使用bindStream 函数与GetX封装在控制器内 class FrediUserController extends GetxController override void onReady super onReady fina
  • 底部有无限像素溢出的 RenderFlex

    我有一个非常简单的控件 我试图在其中展示DropdownButton与几个TextFields 当应用程序在模拟器中运行时 我收到一条错误消息 BOTTOM OVERFLOWED BY Infinity PIXELS The Stack T
  • 如何更改文本字段颤动内部的值?

    我有一个TextEditingController如果用户单击按钮 它就会填写信息 我似乎不知道如何更改 a 中的文本Textfield or TextFormField 有解决办法吗 只需更改text财产 TextField contro
  • 更改语言 Flutter 的按钮

    我正在 Flutter 中构建一个应用程序 到目前为止 我正在使用 JSON 国际化 其中应用程序的语言基于用户手机中默认的语言 它工作得很好 但我想给用户有机会在不更改手机系统语言设置的情况下更改语言 只需单击按钮 然后应用程序即可更改语
  • 如何知道 Dart 中的复选框或单选按钮是否被选中?

    我有一个复选框和一个单选按钮组 我想知道是否选中了该复选框以及选择了哪个单选按钮 我如何在 Dart 中做到这一点 假设我们有这样的 HTML
  • 谷歌地图颤动检查点是否在多边形内

    我正在使用 google maps flutter 插件开发 flutter 项目 我想检查用户位置是否位于我在地图上创建的多边形内 有一个简单的方法使用 JavaScript api con tainsLocation 方法 但对于 fl
  • 如何在 flutter 中仅显示列表中的 5 项

    我想在 flutter 中显示一个列表 我正在使用listView 问题是我只想显示 5 个项目 我的意思是当用户向下滚动时我想从开始索引中删除并将另一个小部件添加到包含我的小部件的列表的末尾 但是当我这样做时ScrollView 不会停留
  • 用颤动画布在形状上切一个洞

    如何使用颤动画布在形状上 切一个洞 我有一组相当复杂的形状 看起来像现实世界的物体 该物体上有一个圆角矩形形状的孔 我真的很想从形状中减去 RRect 但我找不到任何有关如何执行此操作的信息 canvas clipRRect myRRect
  • 如何展平列表?

    我怎样才能轻松地压平List在达特 例如 var a 1 2 3 a b c true false true var b 1 2 3 a b c true false true 我该如何转向a into b 即变成一个List包含所有这些值

随机推荐

  • 更改值 recyclerview.adapter 并将其保存到 mainactivity 中的 textview 中?

    当我更改 recyclerview adapter 的值时 我想将其值设置为 mainactivity 中的 textview 该怎么做 it will be like this 从我的 json 中检索回收数据 因此它将是随机的且数据很多
  • Flutter:如何导入现有的 Flutter 项目作为 gradle 项目

    如何导入现有的 Flutter 项目作为 gradle 项目 导入项目 向导要求 Gradle 主路径 我的系统中安装了 gradle 但这里需要设置什么 哪个路径 这是我正在尝试的 Error 我也遇到过这个问题 我必须在 Android
  • 使用 scikit-learn OneClassSVM 时获取每个新观察结果为异常值的概率

    我是 scikit learn 和 SVM 方法的新手 我的数据集与 scikit learn OneClassSVM 配合良好 可以检测异常值 我使用观察来训练 OneClassSVM 所有这些都是 内点 然后使用 Predict 对我的
  • WatchService 和 SwingWorker:如何正确执行?

    WatchService 听起来像是一个令人兴奋的想法 不幸的是 它似乎像教程 api 中警告的那样低级 而且并不真正适合 Swing 事件模型 或者我错过了一些明显的东西 非零概率 获取代码来自教程中的 WatchDir 示例 http
  • 在 Android 应用程序中播放 .wav/.mp3/.ogg 音频文件时出现延迟

    我编写了一个用于播放 20 毫秒音频剪辑 wav 格式 的应用程序 它只是重复播放声音片段 1000 次 但由于延迟 它的播放次数在 978 到 984 之间 我还尝试过其他音频格式 ogg mp3 等 我想减少延迟并获得可靠的号码 我在下
  • Android drawable-hdpi-night 文件夹

    Please help I am playing with small example of day night mode in Android So far so good I have 2 images of multiple size
  • 发送邮件到 mailtrap.io

    我正在使用 Laravel 5 1 我在我的申请中创建了联系页面 因此用户可以发送电子邮件 这里我使用了mailtrap io 当我创建时它就起作用了 我的意思是发送邮件到mailtrap io没有问题 但今天 当我再次检查时 它向我显示了
  • UIBezierPath 具有圆角边缘的三角形

    我设计了以下代码来生成UIBezierPath 该路径在CAShapeLayer掩盖一个UIView 请注意 视图的高度和宽度是可变的 这段代码生成一个具有锐利边缘的三角形 但我想使角变圆 我已经尝试过addArcWithCenter li
  • 为spark master指定local[n1,n2,n3]时,三个参数是什么?

    对于启动 Spark 我看到 master local n1 n2 n3 其中 n1 n2 和 n3 是整数 这些指的是什么 主规范解析为SparkContext createTaskScheduler https github com a
  • java中如何判断一个字符串是否至少包含一个字母?

    我想要这样的验证 我的字符串必须至少包含一个字母表 我正在使用以下内容 String s 111a11 boolean flag s matches a zA Z 旗帜给了我false虽然a在我的字符串中s 您可以使用 a zA Z wit
  • Git commit - 在有或没有消息文件的情况下处理类似的#注释

    我已经暂存了一个文件readme txt 调用时 git commit 它会打开我的编辑器并显示一条预定义的消息 在第一行中 我添加的只是为了强制 stackoverflow 显示此空行 Please enter the commit me
  • 将 javascript 函数应用于可拖动副本

    我想应用名为 copy contenue 的函数来更改 div 父 id 在我拖动原件后创建的副本上 但我的脚本更改了原件而不是副本我也尝试了 ui helper 来代替它 但没有任何反应 model 1 draggable connect
  • Android RecyclerView 中项目之间的空间过大

    我正在使用 RecyclerView 从每次在 EditText 中按 Enter 键时填充的对象列表中加载数据 但我面临的问题是 我添加的第一个项目显示正常 当我添加第二个项目时 它显示第一个和第二个项目之间有很大的差距 如果我继续添加项
  • jqgrid 掩码十进制数字单元格

    我的 jgrid 中有一个 float 类型的列 我想在用户输入单元格时屏蔽列单元格 例如 掩码应为 99999 99 当 9 0 9 之间的任何数字时 我希望该点左侧最多有 5 位数字 该点右侧最多有 2 位数字 并且可以输入少于最大值的
  • 由于 Cloud Foundry 上的 SSL 错误,JaxB 无法解组?

    我有一个 Web 应用程序 使用 thymeleaf Spring Boot AngularJS 和 Oracle sql Developer db 在本地 我能够连接并从 Oracle 获取值 但是当我将应用程序推送到 Cloud Fou
  • 经典 ASP #include virtual 不起作用

    我们正处于从 IIS6 2003 到 IIS8 2012 的迁移过程中 我们必须维护一些经典 ASP 以及 ASP 和 NET 应用程序 完整的应用程序似乎运行良好 例如 我进入 IIS 右键单击文件夹并执行 转换为应用程序 但我们的站点严
  • ExpressionHelper.GetExpressionText(表达式)不返回我的属性的名称

    我已经实现了 MVC 扩展来格式化应用程序中的数字 它基于找到的代码here https stackoverflow com a 7766382 455492 并且如下 public static MvcHtmlString Decimal
  • 如何在 bash 中启动 Docker-ubuntu 容器?

    答案来自这个问题 https stackoverflow com questions 21928691 how to continue a docker which is exited不工作 docker 容器总是先于我退出attach或不
  • 自定义通知声音未播放

    我正在尝试在状态栏通知上播放自定义声音 这 mp3文件位于res raw 但是当我通知用户时 声音不会播放 我尝试过使用 MediaPlayer 它可以工作 但我不想让它与 MediaPlayer 一起播放 这是我的方法 public vo
  • 在聚合物项目上转换 dart2js 时出错

    不支持的操作 无法在反射中使用ownerName 因为它未包含在 MirrorsUsed 注释中 ownerName只是聚合物元素上的已发布属性 我知道有一些这样的东西 在网络上 而不是在这里 但没有一个有可靠的答案 我还在下面得到了这个