knockout 学习使用笔记----绑定map--双向绑定

简单的方式,使用 knockout.mapping.js。

1、引入knockout.mapping.js。

2、声明模型

var model = {
    task:null,
    feedbacks:[],
    feedbackPhotos:null
}

3、mapping 绑定 

var viewModel = ko.mapping.fromJS(model);

4、声明绑定

$(function() {
    ko.applyBindings(viewModel);
    initData();
})

5、赋值

viewModel.task(result.data);

6、使用

<div id="form" data-bind="with:task">
        <div id="form-head">
            <div id="form-head-inner">
                <div id="form-title" class="horizontal">
                    <span data-bind="text:taskName+'【'+taskId+'】'"></span>
                </div>
                <div id="form-action">
                    
                </div>
            </div>
        </div>
<div class="container" data-bind="foreach:feedbacks">
                                    <div class="row">
                                        <div class="col-md-12 col-sm-12">
                                            <div class="section-title">
                                                <h1 class="heading bold" data-bind="html:moment(feedbackPlanTime).format('YYYY-MM-DD')"></h1>
                                            </div>
                                        </div>
                                    </div>

 注意绑定方法的时候

<td class="order-info-val text-right" data-bind="text:$root.getStat(custDec015)"></td>
var viewModel = {orderInfo:ko.observable(),
    getStat:function(phase){
        // console.log("========"+phase());
        return getStat(phase())//绑定此处是个方法,需要加()
    }};
原文地址:https://www.cnblogs.com/yeyuchangfeng/p/6857662.html