将模板传递到自定义挖空绑定

时间:2015-03-09 17:28:58

标签: knockout.js twitter-bootstrap-3 requirejs knockout-3.2

我想制作一个popover(bootstrap)自定义绑定。

我这样定义了这个:

    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。当然,我想要一个模板路径来解决,但使用需要文本!插件并不像我希望的那样好。

我怀疑我忽略了一些更简单的事情?

2 个答案:

答案 0 :(得分:1)

只需向模板发出ajax请求

$.ajax(template).done(function (templateData) {
    $(element).popover({
        placement: 'top',
        html: true,
        content: templateData
        });
 });

答案 1 :(得分:0)

现在你的模板是文字字符串'templates / mytemplate.html'。这可能不是你想要的,你想要那个文件中的文本。使用类似fs.readFileSync的内容来同步获取该文件中的文本。

如果您打算将html的路径传递给绑定,可能需要将变量名称从模板更改为路径。