javascript - Dart-JS 互操作 : JS object not loading when running in Dartium

标签 javascript twitter-bootstrap-3 dart dart-js-interop dartium

当我在 Chrome 中运行代码(转换为 JS)时,对象在页面加载时可用。当我在 Chromium( native Dart + JS)中运行代码时出现问题,对象未加载,在这种情况下,为 dateObject['length'] 打印 0。

date_picker.dart

part of myproject.common.ui;

@Component(
    selector: 'date_picker',
    templateUrl: "date_picker.html",
    useShadowDom: false
)
class DatePickerComponent{


    DatePickerComponent() {
        new Future(() {

            var dateObject = context.callMethod("jQuery", ['#date_picker']);
            print(dateObject['length']);
            var dateChanged = dateObject.callMethod("datetimepicker", [new JsObject.jsify({"format": 'MM/DD/YYYY'})]);
            dateChanged.callMethod('on', ['dp.change']);

        });
    }
}

date_picker.html

    <div class="form-group">
        <div class='input-group date' id='date_picker'>
            <input type='text' class="form-control"/>
                    <span class="input-group-addon">
                        <span class="glyphicon glyphicon-calendar"></span>
                    </span>
        </div>
    </div>

使用评论中的答案添加修改后的 date_picker.dart

part of my_project.common.ui;

@Component(
    selector: 'date_picker',
    templateUrl: "date_picker.html",
    useShadowDom: false
)
@Injectable()
class DatePickerComponent implements ShadowRootAware{

void onShadowRoot(_){


    new Future((){

        var dateObject = context.callMethod("jQuery", ['#date_picker']);
        var dateChanged = dateObject.callMethod("datetimepicker", [new JsObject.jsify({"format": 'MM/DD/YYYY'})]);
        dateChanged.callMethod('on', ['dp.change']);

    });
}
    DatePickerComponent();
}

最佳答案

假设您使用的是 angular1,您可以实现 ShadowRootAware 并将您的代码放入 void onShadowRoot(_)(即使您有 useShadowDom: false 应该调用这个方法)

关于javascript - Dart-JS 互操作 : JS object not loading when running in Dartium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32770107/

相关文章:

用于坐标平面上的线的 Javascript 图表库

javascript - 服务 worker : how to update the cache when files changed on the server?

javascript - 复选框组获取选中复选框的值jquery

dart - Dart/Polymer 构建输出文件/所有内容编译/粘贴到 index.html 时出现问题

Flutter 在滚动 ListView 上显示和隐藏容器

Javascript window.getSelection().focusNode.nodeValue 返回 HTML

css - Bootstrap 中溢出的导航栏

css - Bootstrap 固定导航 float 线和文本

css - Bootstrap - 水平对齐下拉列表中的内容,并在它们之间使用垂直分隔符

Dart 的 .packages 文件和链接解析