使用knockout.js 完毕template binding

//1.template 

<script id="txn-details-template" type="text/html">
    <!--Status 0 : Success , Status 1 : Processing , Status 2 : Rejected-->
    <div class="pull-left last-ten-records">
        @string.Format(Resx.RecentRecordsShowHere_0,5)
    </div>
    <div class="row">
        <table class="table table-bordered tbl">
            <thead>
                <tr>
                    <th>
                        @Resx.WithdrawalHistory_RequestDate
                    </th>
                    <th>
                        @Resx.WithdrawalHistory_TransactionNo
                    </th>
                    <th>
                        @Resx.WithdrawalHistory_Method
                    </th>
                    <th>
                        @Resx.WithdrawalHistory_Status
                    </th>
                    <th>
                        @Resx.WithdrawalHistory_Amount
                    </th>
                </tr>
            </thead>
            <tbody data-bind="foreach: Values">
                <tr>
                    <td data-bind="text: Date"></td>
                    <td data-bind="text: TransactionNo"></td>
                    <td data-bind="text: Method"></td>
                    <!-- ko if: StatusCode == 0 -->
                    <td style="color:#efc944" data-bind="text: Status"></td>
                    <!-- /ko -->
                    <!-- ko if: StatusCode == 1 -->
                    <td style="color:#efc944" data-bind="text: Status"></td>
                    <!-- /ko -->
                    <!-- ko if: StatusCode == 2 -->
                    <td style="color:#80ca0b" data-bind="text: Status"></td>
                    <!-- /ko -->
                    <!-- ko if: StatusCode == 3 -->
                    <td style="color:#ff7d00" data-bind="text: Status"></td>
                    <!-- /ko -->
                    <!-- ko if: StatusCode == 4 -->
                    <td style="color:#ff7d00" data-bind="text: Status"></td>
                    <!-- /ko -->
                    <td><span data-bind="text: Amount" style="float: right;margin-right: 27%;"></span></td>
                </tr>
            </tbody>
            <tfoot>
                <tr><td colspan="5"></td></tr>
            </tfoot>
        </table>
    </div>

</script>

//2.div for binding
<div id="txn-details" class="txn-details" data-bind="template: { name: ‘txn-details-template‘ }">

        </div>

//3.js 

var preFetch = {
    pageLoaded: false, data: undefined
};

$(document).ready(function () {

    $("#btnAccountDetails").click(function () {

        var arrow = $("#arrow");
        if ($(arrow).attr("showing")) {
            $(arrow).html("<i class=\"fa fa-angle-double-up\"></i>");
            $(arrow).removeAttr("showing", 1);
            $("#txn-details").slideToggle(false);
            prefetchDataToCache();
            return;
        }

        $(arrow).html("<i class=\"fa fa-angle-double-down\"></i>");
        $(arrow).attr("showing", 1);
        $("#txn-details").slideToggle(true);
    });

    prefetchDataToCache();

});

function binding() {
    var vmVals = ko.observableArray();
    for (var i = 0; i < preFetch.data.Values.length; i++) {
        vmVals.push(preFetch.data.Values[i]);
    }

    ko.applyBindings({ Values: vmVals }, document.getElementById("txn-details"));
}

function prefetchDataToCache() {
    $.ajax({
        type: ‘POST‘,
        url: $("#hdnLatestTxnUrl").val(),
        success: function (data) {
            preFetch.data = data;

            ko.cleanNode($("#txn-details")[0]);
            binding();

        }
    });
}

MVC Controller 返回的json结构:

{Values : [{Status : ‘xxx‘ ,StatusCode : 1 , Date: ‘xxxx‘, TransactionNo : ‘xxxx‘ , Method: ‘xxx‘ , Amout : 100} ]}

时间: 2024-07-30 05:13:39

使用knockout.js 完毕template binding的相关文章

使用knockout.js 完成template binding

//1.template <script id="txn-details-template" type="text/html"> <!--Status 0 : Success , Status 1 : Processing , Status 2 : Rejected--> <div class="pull-left last-ten-records"> @string.Format(Resx.RecentRec

MVC、MVP、MVVM、Angular.js、Knockout.js、Backbone.js、React.js、Ember.js、Avalon.js 概念摘录

转自:http://www.cnblogs.com/xishuai/p/mvc-mvp-mvvm-angularjs-knockoutjs-backbonejs-reactjs-emberjs-avalonjs.html MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是将 M 和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式. 交互方式(所有通信都是单向的): View 传送指令到 Contro

Knockout JS 演示样例

五个小样例,来自Knockout JS官方站点. //tutorial 1 //following codes uses to demonstrate observable values and target bound ways especially method bound <!-- This is a *view* - HTML markup that defines the appearance of your UI --> <p>First name: <stron

4.Knockout.Js官网学习(事件绑定)

前言 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用在button,input和连接a上,但是可以在任意元素上使用. 简单示例 <h2>ClickBind</h2> <div> You've clicked <span data-bind="text: numberOfClicks"></span> times <button data-bind="

【ASP.NET Web API教程】2.3.5 用Knockout.js创建动态UI

注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. Part 5: Creating a Dynamic UI with Knockout.js 第5部分:用Knockout.js创建动态UI 本文引自:http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-framework/using-web-api-with-entity-fra

1.Knockout.Js官网学习(简介)

前言 最近一段时间在网上经常看到关于Knockout.js文章,于是自己就到官网看了下,不过是英文的,自己果断搞不来,借用google翻译了一下.然后刚刚发现在建立asp.net mvc4.0的应用程序的时候,建完之后我直接在项目的Scripts中看到了这两个js类库,用谷歌翻译看了下官网,Ko的实现原理是MVVM,比MVC高级一些. 简介MVVM模式 MVVM是Model-View-ViewModel的简写. WPF的数据绑定与Presentation Model相结合是非常好的做法,使得开发

Knockout.Js官网学习(系列)

1.Knockout.Js官网学习(简介) 2.Knockout.Js官网学习(监控属性Observables) Knockout.Js官网学习(数组observable) 3.Knockout.Js官网学习(visible绑定) Knockout.Js官网学习(text绑定) Knockout.Js官网学习(html绑定.css绑定) Knockout.Js官网学习(style绑定.attr绑定) 4.Knockout.Js官网学习(click绑定) Knockout.Js官网学习(event

【Knockout.js 学习体验之旅】(3)模板绑定

本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knockout.js 学习体验之旅](1)ko初体验 [Knockout.js 学习体验之旅](2)花式捆绑 [Knockout.js 学习体验之旅](3)模板绑定 模板引擎 页面是由数据和HTML组件构成的,如何将数据嵌入到HTML组件里面呢?一个比较好的选择是使用模板技术. 回顾下第一篇([Knock

通过Knockout.js + ASP.NET Web API构建一个简单的CRUD应用

REFERENCE FROM : http://www.cnblogs.com/artech/archive/2012/07/04/Knockout-web-api.html 较之面向最终消费者的网站,企业级Web应用对用户体验的要求要低一些.不过客户对“用户体验”的要求是“与日俱增”的,很多被“惯坏了”的用户已经不能忍受Postback带来的页面刷新,所以Ajax在企业级Web应用中得到了广泛的应用.企业级Web应用的一个特点是以“数据处理”为主,所以“面向绑定”的Knockout.js 是一