是否可以在html输出中省略knockoutjs data-bind属性?

时间:2014-05-06 19:26:44

标签: data-binding knockout.js

我有通过knockoutjs进行数据绑定的项目模板

<script id="ItemTeamplte" type="text/html">
    <div>some value: <span data-bind="text: someObj.someProp"></span></div>
</script>

,输出

<div>some value: <span data-bind="text: someObj.someProp">614</span></div>

如何省略

  

data-bind =“text:someObj.someProp”

html输出中的

属性?

2 个答案:

答案 0 :(得分:5)

您可以通过扩展绑定提供程序来完成此操作。这是一个简单的例子:

ko.bindingProvider.instance.getBindingsString = (function (originalFunc) {
    return function (node, bindingContext) {
        if (node.__savedBinding) {
            return node.__savedBinding;
        }
        var binding = originalFunc.call(this, node, bindingContext);
        if (binding && node.nodeType == 1) {
            node.__savedBinding = binding;
            node.removeAttribute('data-bind');
        }
        return binding;
    }
})(ko.bindingProvider.instance.getBindingsString);

小提琴:http://jsfiddle.net/mbest/C5QHx/

答案 1 :(得分:0)

不,这是不可能的,KO中没有功能来执行此操作。该属性就在那里,所以Knockout可以完成它的工作。

可能通过the source code获得运气,并修改(或修补)它以满足您的目的,但我也认为可能为了正确而痛苦。