2

バインディングを更新し続けることができるBoostrapポップオーバーのコンテンツとしてEmber Viewを取得しようとしています。

私はこれを達成できました。このjsFiddleの例を確認できます。

残念ながら、このソリューションではポップオーバーの配置が不規則になります。

誰かが私のコードをチェックして、私が間違っていたことを確認できますか、またはこれを達成するためのより簡単な方法があるかどうかを確認できますか?

  $popover.popover({
        html: true,
        placement:'bottom',
        content: function(){

            if(_this.get('childView')) {
                _this.get('childView').remove(); 
            }

            var view = _this.container.lookup('view:popoverContent'),
                childView = _this.createChildView(view),
                popover = $popover.data('popover'),
                $tip = popover.tip(),
                $content = $tip.find('.popover-content');

            _this.set('childView', childView);
            childView.appendTo($content);

            var html = $content.html();

            return html;            
        }
    });
4

1 に答える 1

0

私はあなたが何を意味すると思います

残念ながら、このソリューションではポップオーバーの配置が不規則になります。

ポップオーバーを常に同じ配置で表示したいということです。私が正しく推測した場合、あなたが提供したjsfiddleに欠けているのは、2つのポップオーバーのうち、1つだけがplacementプロパティをに設定しbottom、2つ目はデフォルトである を使用していることだけですright

したがって、ここでの解決策は、placement使用するすべてのポップオーバーに対して常に同じプロパティを定義することです。ドキュメントに記載されているように、placementこれらの値のいずれかを文字列として指定できます。

top | bottom | left | right

常に右側に表示されるように jsfiddle を更新しました。こちらをご覧ください。カスタム配置については、ポップオーバーの責任ある css を掘り下げて、必要なものを上書きする必要があります。

それが役に立てば幸い。

于 2013-07-17T14:32:27.780 に答える