Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart jQueryUI和jQueryUI触摸冲压don';不要使用聚合物。省道_Dart_Dart Polymer_Dart Js Interop - Fatal编程技术网

Dart jQueryUI和jQueryUI触摸冲压don';不要使用聚合物。省道

Dart jQueryUI和jQueryUI触摸冲压don';不要使用聚合物。省道,dart,dart-polymer,dart-js-interop,Dart,Dart Polymer,Dart Js Interop,我正在使用jQueryUI和jQueryUI touch punch与Polymer.Dart开发一个小型Dart应用程序。当我不使用聚合物飞镖时,一切都很好。但对于Polymer.dart,出现了几个问题。这是我的密码 index.html 带聚合物的Dart和jquery ui window.jQuery | | document.write(“”) window.jQuery.ui | | document.write(“”) 出口“包装:聚合物/初始省道”; 带聚合物的Dart和jqu

我正在使用jQueryUI和jQueryUI touch punch与Polymer.Dart开发一个小型Dart应用程序。当我不使用聚合物飞镖时,一切都很好。但对于Polymer.dart,出现了几个问题。这是我的密码

index.html

带聚合物的Dart和jquery ui
window.jQuery | | document.write(“”)
window.jQuery.ui | | document.write(“”)
出口“包装:聚合物/初始省道”;
带聚合物的Dart和jquery ui
Dart的世界你好

main_component.html

开放式JSVer
开放式飞镖
你好,世界1!
btn1
btn2
btn3
btn4
btn5
你好,世界2!
btn1
btn2
btn3
btn4
btn5
js/js_main.js
$(函数(){
//这个JS文件中的代码完全不起作用。。。
//但是JS控制台中没有错误消息。。。
//btn1配置
$('#btn1')。单击(函数(){
$('msg1')。对话框('open');
} );
//msg1配置
$('#msg1')。对话框({
自动打开:错误,
按钮:{
“OK”:函数(){
$(this.dialog('close');
}
},
标题:“对话1”,
可调整大小:false,
莫代尔:错,
节目:"折叠",,
隐藏:“喘息”
});
//btn2和msg2配置在Dart端实现。
} );
主零件。省道
import'包装:polymer/polymer.dart';
将“dart:js”导入为js;
@CustomTag('main-component')
类MainComponent扩展了聚合关系{
MainComponent.created():super.created(){
//构造器。。。
}
@凌驾
附页(){
super.attached();
//btn2配置
js.context.callMethod(r'$',[$['btn2']]
..callMethod('单击',[
([arg]){
js.context.callMethod(r'$',[$['msg2']]
..调用方法('dialog',['open']);
} 
]);
//msg2配置
js.JsObject options=new js.JsObject(js.context['Object']);
选项['autoOpen']=false;
选项['buttons']=newjs.JsObject(js.context['Object']);
选项['buttons']['OK']=([arg]){
js.context.callMethod(r'$',[$['msg2']]
..调用方法('dialog',['close']);
};
选项['title']=“Dialog2”;
选项['modal']=false;
选项['show']='fold';
选项['hide']='puff';
js.context.callMethod(r'$',[$['msg2']]
..调用方法('dialog',[options]);
}
}
问题是

  • msg1不形成对话框,btn1不执行我注册的鼠标点击事件。这意味着“JS_main.JS”中的JS脚本无法工作(没有错误消息)。我发现Polymer.dart的自定义元素实现了阴影DOM,它禁止从外部进行任何访问。这是问题的原因吗

  • 当我使用“pub-build”将Dart应用程序转换为JavaScript时,生成的产品可以在我的iPadMini(iOS6)浏览器中运行。这没关系。然而,jQueryUI touch punch似乎工作不好。因此,我无法从我的iPad mini访问任何拖动或调整大小的操作

  • Dart SDK版本为1.2

    有人能帮忙吗


    感谢您阅读到最后:)

    您的jQuery元素选择代码
    $('#msg')
    $('#btnx')
    在shadowDOM中找不到任何元素。可能还有其他问题,但这个问题很明显。

    我明白了。这是否意味着无法从JS访问ShadowDOM中的元素?事实并非如此,您实际上可以从JS访问ShadowDOM,但jQuery默认情况下无法访问。问题是在不同的浏览器上(本机实现/polyfill)可能会有所不同。请参阅。@AlexandreArdhuin的解决方案可能是一种更好的方法。选择Dart中的元素并将结果传递给JavaScript。