Fiddler link私はHTMLのツールチップを作成するために、<a href="https://atomiks.github.io/tippyjs/" rel="nofollow noreferrer">Tippy library</a>を使用していますAngularJS
をディレクティブを適用することができません。私はちょっとしたヒントを扱うために2つの指示をしました。
.directive('settings', function() {
return {
templateUrl: 'tippy-template.html'
};
})
.directive('tippy', function() {
return function (scope) {
tippy('.tippy', {
position: 'bottom',
animation: 'shift',
arrow: true,
interactive: true,
arrowSize: 'big',
distance: 20,
html: document.getElementById('setting-template'),
appendTo: document.getElementById('settings-controller')
})
};
})
settings
ディレクティブは、HTMLのツールチップのコードが含まれており、それがアクティブに取得するtippy
ディレクティブは、HTMLのツールチップのコードに配置されます。 tippyツールは、コントローラが存在するコントローラとデータを共有します。この例では、キャッシュを共有します。
tippy
Fiddler 1 controllerのインスタンスが1つしかない場合は、すべて正常に動作します。私はこの指令を再び使用することはできません。私は持っている問題を再現することができました。Fiddler 2 controllers link。
私の理解から、
Tippy
は、一意のIDがある場合にのみ使用できます。これを解決する方法はありますか?
ティッピー・template.html
<div id="setting-template" tippy>
<ul class="collection">
<li class="collection-item">
<div class="col-title"><b>{{title}}</b></div>
<div class="col-title">Cache</div>
<div class="col-item">
<div class="switch">
<label>Off
<input ng-model="cache" type="checkbox"><span class="lever"></span> On
</label>
</div>
</div>
</li>
<li class="collection-item">
<div class="col-title"><b>Cache Result</b></div>
<div class="col-item">{{cache}}</div>
</li>
</ul>
</div>
ディレクティブの使用(コントローラ内部の)
<div id="settings-controller" settings></div>
私たちは独自の立場に立つために、tippy-template.htmlとディレクティブの使用例を追加します。それが立っているので、唯一言うことは、あなたのディレクティブにdocument.getElementById()を持つべきではないということです。 – Walfrat
@Walfrat更新(フィドラーにも両方が含まれています)、Tippyはテンプレートを使用するためにIDを与えられる必要があります。 – Shank
これは私がここに見るものではなく、HTMLElementを与えています。document.getElementById()はIdを返しません。idに一致するHTMLオブジェクトを返します。このディレクティブを使用すると、要素オブジェクトを挿入できます。ディレクティブが使用されたオブジェクトのIDを取得できます。最後に、複数のIDをテンプレートに入れて複数回使用すると、うまく動作しません。なぜなら、複数のIDをHTMLに結びつけるからです。 – Walfrat