dostuff(); 运行代-6ren">
gpt4 book ai didi

dart - 聚合物 Dart @initMethod 未执行

转载 作者:行者123 更新时间:2023-12-03 03:28:18 27 4
gpt4 key购买 nike

我正在摆弄聚合物 Dart 0.10.0-pre.10 的"new"说明,才意识到我有包 0.9.5安装(在更新的 Dart 编辑器上)。并且只能使用 main() => dostuff(); 运行代码根据 instructions 添加组件 1只是打破了任何工作。

我设置pubspec.yaml>= 0.9.9 的聚合物依赖性它自动发布版本 0.10.0-pre.10 .然后我按照建议进行了更改并移动了dostuff()到自定义元素类 ( extends PolymerElement ) 并放入 @initMethod它上面。它不运行。

在我无法找到将新项目从 JSON 文件(我成功通过 http 获得)绑定(bind)到聚合物元素的方法之前,我让它运行。

mylist.dart

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

@CustomTag('my-list')
class MyListElement extends PolymerElement {

@observable List mylist = ['one', 'two', 'three'];

@initMethod
static dostuff() {
print("initMethod");
// get json and pass to mylist
}
}

mylist.html

<polymer-element name="my-list">
<template>
<ul>
<template repeat="{{item in mylist}}">
<li>{{item}}</li>
</template>
</ul>
</template>
<script type="application/dart;component=1" src="mylist.dart"></script>
</polymer-element>

索引.html

<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample app</title>
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="mylist.html">
<script src="packages/browser/dart.js"></script>
</head>
<body>
<h1>MyList</h1>

<div id="container1">
<json-list id="my-list1"></json-list>
</div>
</body>
</html>

最佳答案

元素内的这段代码(尤其是 @initMethod )没有意义。@CustomTag('my-list')已经这样做了。您需要@initMethod()仅当您希望执行像 main() 这样的方法时它位于 Polymer 元素之外。

您可以将此代码放在 MyListElement 的构造函数中或更好的内部polymerCreated在 super 电话之前。

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

@CustomTag('my-list')
class MyListElement extends PolymerElement {

@observable List mylist = ['one', 'two', 'three'];

@override
polymerCreated() {
print("initMethod");
// get json and pass to mylist
super.polymerCreated();
}
}

你没有得到聚合物 0.10.0-pre.10因为它是由 - 指示的预发布版本在补丁版本之后(不是 pre )。
Pub 默认忽略预发布。您必须通过像 '>=0.10.0-' 这样的版本约束来强制执行它们。

关于dart - 聚合物 Dart @initMethod 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23449684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com