0

ポップオーバー (ブートストラップ) カスタム バインディングを作成したいと思います。

私はこれを次のように定義しました:

    ko.bindingHandlers.popover = {
        update: function (element, valueAccessor)
        {
            var template = ko.unwrap(valueAccessor);

            $(element).popover({
                placement: 'top',
                html: true,
                content: 'text!' + template() <---- How can i get html into here?
            });
        }
    };

   <button data-bind="popover: 'templates/mytemplate.html'">
      PopOver
   </button>

問題は、必要な html を挿入する方法がわからないことです。当然、テンプレートのパスを解決したいのですが、作業にはテキストが必要です! プラグインは私が望んでいたほどうまくいきません。

もっと単純なものを見落としていると思いますか?

4

2 に答える 2

1

テンプレートに ajax リクエストを送信するだけです

$.ajax(template).done(function (templateData) {
    $(element).popover({
        placement: 'top',
        html: true,
        content: templateData
        });
 });
于 2015-03-10T06:30:49.153 に答える
0

現在、テンプレートはリテラル文字列 'templates/mytemplate.html' です。それはおそらくあなたが望むものではなく、そのファイルのテキストが必要です。fs.readFileSyncのようなものを使用して、そのファイルからテキストを同期的に取得します。

HTML のパスをバインディングに渡す場合は、変数名をテンプレートからパスに変更することをお勧めします。

于 2015-03-09T18:12:52.403 に答える