繁体   English   中英

敲除js模板,将json数据源传递给模板

[英]knockout js template passing json data source to template

我是Knockout及其模板功能的新手,我有以下html,有人可以帮助我构筑合适的模板来替换其字符串文字和数据源,我正在使用x-editable,#

<tr data-bind="foreach: fundClasses">
    <td class="span1">
        <span data-bind="visible: $index() == 0">  Rate Index</span>
    </td>
    <td class="span1 protected">
        <span data-bind=" editable:INDEX_ID,  editableOptions: {name:'INDEX_ID',mode: 'popup',type: 'select', source: rateIndex,pk: ID, url: '/create/EditInPlace'}"></span>
    </td>
</tr>

我想在上面的代码段中替换rateIndex,INDEX_ID,对此非常有帮助。

谢谢乔治

我自己弄清楚了,因此想到了答案,这样可以帮助其他人寻找类似的问题,

模板:

<script id="textBoxTemplate" type=“text/html”>
   <!-- ko foreach: $data -->
    <td class="span1">
        <span data-bind="visible: $index() == 0,text:title">  </span>
    </td>
    <td class="span1 protected">
         <span data-bind="editable:$data[field],editableOptions: {  mode: 'popup', pk: ID, url: '/create/EditInPlace'}"></span>
   </td>
   <!-- /ko -->

用法:

<tr data-bind="templateWithContext: { name: 'textBoxTemplate', data: fundClasses, context: { title: 'Index', field:'INDEX_ID' }}"></tr>

绑定处理程序:

ko.bindingHandlers.templateWithContext = {
    init: ko.bindingHandlers.template.init,
    update: function (element, valueAccessor, allBindings, data, context) {
        var options = ko.utils.unwrapObservable(valueAccessor());

        ko.utils.extend(context, options.context);

        return ko.bindingHandlers.template.update.apply(this, arguments);
    }
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM