在聚合物.dart元素中,我需要加载资源。问题是我不知道该资源的位置。
这是我的消息来源的组织:
web/
|- my_project.dart
|- my_project.html
|- my_project.css
|- element/
|- element.html
|- element.dart
|- res.txt
我需要在元素中加载res.txt
.
为此,我使用:
HttpRequest.getString('res.txt');
它尝试加载/res.txt
而不是/element/res.txt
.
当然,如果我这样做...
HttpRequest.getString('element/res.txt');
。它可以工作,但这对我来说还不够,因为我希望我的聚合物元件尽可能便携和可重复使用(这是聚合物的目的),并且我不希望我的元件依赖于位置。
我还应该指出,直到0.8.5版本,它在Polymer.dart中正常工作。
所以,我想我想要这样的东西...
HttpRequest.getString(getElementLocation() + '/res.txt');
。但我还没有找到任何相应的内容。
这可能吗?
John Messerly在上面评论中提到的Google小组上回答了这个问题。请参阅 https://groups.google.com/a/dartlang.org/d/msg/web-ui/f29kUdNI7Bw/W8dpbMG6iCEJ。
聚合物.js具有resolvePath
的API(见 https://github.com/Polymer/polymer/blob/2f7c65592dd2c8f9da7eed8c96c076e49fa208d1/src/declaration/path.js#L14)。聚合物飞镖没有它。