我已经构建了一个使用嵌套Polymer元素的Polymer.dart应用程序.父元素接受一个属性,并将其值作为属性传递给嵌套的子元素.这在DartEditor中"Run in Dartium"时工作正常,但在应用程序为"Pub Built"和"Run as JavaScript"后,嵌套元素无法加载.在构建过程中没有任何错误消息,或任何其他类型的指针.我不知道如何调试这个以及它在Dartium没有任何警告或错误的情况下按预期运行的事实没有帮助.
以下是我的应用程序的简化版本的代码,产生相同的问题. my_view
是父元素,是加载my_form
时附加的嵌套元素my_view
.
main.html
The view polymer element should appear below:
my_view.html
The form should appear below:
my_view.dart
import 'package:polymer/polymer.dart';
import 'dart:html';
@CustomTag('my-view')
class MyView extends PolymerElement {
@published String viewAttribute;
DivElement _formSlot;
MyView.created() : super.created() {
_formSlot = $['form_div'];
}
void viewAttributeChanged() {
_formSlot..append(new Element.tag('form', 'my-form')..setAttribute("formAttribute", viewAttribute));
}
}
my_form.html
Attribute value: {{formAttribute}}
my_form.dart
import 'package:polymer/polymer.dart';
import 'dart:async';
import 'dart:html';
import 'dart:convert';
@CustomTag('my-form')
class MyForm extends FormElement with Polymer, Observable {
@published String formAttribute;
@observable String nameValue;
HttpRequest _request;
MyForm.created() : super.created();
void submitForm(Event e, var detail, Node target) {
e.preventDefault();
_request = new HttpRequest();
_request.onReadyStateChange.listen(_onData);
_request.open('POST', 'http://my.server.com/contact_form');
_request.send(JSON.encode({'name': nameValue, 'attribute': formAttribute}));
}
_onData(_) {
if (_request.readyState == HttpRequest.DONE) {
switch (_request.status) {
case 200:
// Data was posted successfully
break;
case 0:
// Post failed
break;
}
}
}
}
任何帮助,提示,祝福,祈祷将不胜感激!谢谢!