我設法通過將lightdom屬性添加到他們的定義中來讓我的聚合物組件工作的bootstrap.js。
<polymer-element name="my-element-with-bootstrap-js" lightdom
apply-author-styles>
<template>
<div>fancy template markup here</div>
</template>
<script type="application/dart" src="my-element-with-bootstrap-js.dart"></script>
</polymer-element>
和主機HTML可能看起來像這樣:
<!DOCTYPE html>
<html>
<head>
<title>Unarin</title>
<meta name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="import" href="elements/my-element-with-bootstrap-js.html">
<script type="application/dart">export 'package:polymer/init.dart';</script>
<script src="packages/browser/dart.js" type="text/javascript"></script>
<link rel="stylesheet"
href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<script
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"
type="text/javascript"></script>
<script
src="//netdna.bootstrapcdn.com/bootstrap/3.0.2/js/bootstrap.min.js"
type="text/javascript"></script>
</head>
<body>
<my-element-with-bootstrap-js></my-element-with-bootstrap-js>
</body>
</html>
請注意:使用lightdom屬性會從陰影DOM光DOM更換您的組件,這可能會導致衝突組件的樣式和全局上下文的現有樣式。
相關的討論:https://groups.google.com/a/dartlang.org/forum/#!topic/web-ui/ps6b9wlg1Vk
基於上述討論,我不是100%肯定,如果lightdom修改將保持標準的方式來實現這種聚合物部件的功能。也許作者可以對此發表評論?
感謝ebidel我還會有一些實驗,看看我是否能得到一個飛鏢運行的版本,使用同單擊事件處理 – user2338071
順便說一句,演示在穩定的分支似乎沒有在Linux中的鉻和Firefox的工作,但在主分支之一。 – user2338071
我有一個類似的問題,http://stackoverflow.com/questions/18261596/twitter-bootstrap-styles-in-飛鏢聚合物模板 - 獲得這個工作的關鍵點是a)從本地位置加載bootstrap css文件,b)通過代碼應用作者樣式,而不是標記。 –