//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} ]}

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

  1. 比較Backbone.js, Angular.js, Ember.js, Knockout.js 心得

    還記得第一次寫網站的時候,我無意間寫成了 SPA(single page application),當時還沒有SPA這個詞,後來因為廣告主需要不同 url location 頁面的廣告展示,只好把部分 ...

  2. C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi

    C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...

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

    本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...

  4. 【Knockout.js 学习体验之旅】(2)花式捆绑

    本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...

  5. MVVM大比拼之knockout.js源码精析

    简介 本文主要对源码和内部机制做较深如的分析,基础部分请参阅官网文档. knockout.js (以下简称 ko )是最早将 MVVM 引入到前端的重要功臣之一.目前版本已更新到 3 .相比同类主要有 ...

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

    注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是 ...

  7. Knockout.js随手记(5)

    以列表方式呈现数据  处理以数组形式储存的多条数据,要先认识foreach.在ViewModel定义一个JavaScript Array或是ko.observableArray() (observab ...

  8. Knockout.js随手记(2)

    计算属性 konckout.js的API文档,写的极为详细和生动,透过MVVM的运作原理,开发时只需专注于定义ViewModel逻辑,不需耗费心力处理TextBox.Select的onchange.o ...

  9. Knockout.js随手记(1)

    新的开始,knockout.js 1.首先去http://knockoutjs.com/index.html下载knockout.js,最新的版本是2.3 2.知道什么是Knockout?它是个Jav ...

随机推荐

  1. Linux系统的LOG日志文件及入侵后日志的清除

    UNIX网管员主要是靠系统的LOG,来获得入侵的痕迹.当然也有第三方工具记录入侵系统的 痕迹,UNIX系统存放LOG文件,普通位置如下: /usr/adm - 早期版本的UNIX/var/adm -  ...

  2. Controller接口控制器

    1.Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1.收集.验证请求参数并绑定到命令对象: 2.将命令对象交给业务对 ...

  3. 22.dll调用技术

    1.dll文件: #include <Windows.h> _declspec(dllexport) void message_hello() { MessageBoxA(, ); } _ ...

  4. Cisco交换机端口安全

    Cisco交换机端口安全       通过端口设置,可以限制允许访问交换机上某个端口的MAC地址以及IP(可选)来实现严格控制对该端口的输入,最终确保网络接入安全.配置网络安全时应该注意如下问题: 1 ...

  5. Google Nexus 5x Android 7.0 Root

    很久没有写东西了,准备重新养成这个好习惯.因为自己一直在用Nexus,前段时间自己的Nexus5老的不行了,所以买了台5x,一直没时间root,今天有时间终于有时间弄一下. 在这里整理分享一下. 开始 ...

  6. request获取各种路径总结、页面跳转总结。

    页面跳转总结 JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使 ...

  7. Flex 集合 ArrayCollection 的使用

    转:http://keren.iteye.com/blog/380847 转:http://callan.iteye.com/blog/335551 集合是ActionScript 中功能强大的基于索 ...

  8. Hexo 自动同步

    灵感 最近认证阿里云学生用户,参与ESC服务器9.9元/月的活动,准备先搭建一个博客网站,写写自已的心得以及经验.之前也搭建过网站,最后由于个人没时间(没时间是假的,就是懒.哈哈)的原因导致最后服务器 ...

  9. PXE无人值守部署centos7.4操作系统

    1.基础环境: 镜像ISO文件名为:CentOS-7-x86_64-DVD-1804.iso 2.安装需要的软件包 yum install dhcp xinetd syslinux httpd tft ...

  10. Linux下安装Go环境

    登录Linux Mac或Linux的用户可以用命令ssh root@xxx.xxx.xxx.xxx登录主机Window的用户可以使用SecureCRT登录主机虚拟机用户直接打开你的虚拟机 安装Go环境 ...