使用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} ]}
使用knockout.js 完毕template binding的更多相关文章
- 比較Backbone.js, Angular.js, Ember.js, Knockout.js 心得
還記得第一次寫網站的時候,我無意間寫成了 SPA(single page application),當時還沒有SPA這個詞,後來因為廣告主需要不同 url location 頁面的廣告展示,只好把部分 ...
- C#设计模式总结 C#设计模式(22)——访问者模式(Vistor Pattern) C#设计模式总结 .NET Core launch.json 简介 利用Bootstrap Paginator插件和knockout.js完成分页功能 图片在线裁剪和图片上传总结 循序渐进学.Net Core Web Api开发系列【2】:利用Swagger调试WebApi
C#设计模式总结 一. 设计原则 使用设计模式的根本原因是适应变化,提高代码复用率,使软件更具有可维护性和可扩展性.并且,在进行设计的时候,也需要遵循以下几个原则:单一职责原则.开放封闭原则.里氏代替 ...
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- 【Knockout.js 学习体验之旅】(2)花式捆绑
本文是[Knockout.js 学习体验之旅]系列文章的第2篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- MVVM大比拼之knockout.js源码精析
简介 本文主要对源码和内部机制做较深如的分析,基础部分请参阅官网文档. knockout.js (以下简称 ko )是最早将 MVVM 引入到前端的重要功臣之一.目前版本已更新到 3 .相比同类主要有 ...
- 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 的目的是 ...
- Knockout.js随手记(5)
以列表方式呈现数据 处理以数组形式储存的多条数据,要先认识foreach.在ViewModel定义一个JavaScript Array或是ko.observableArray() (observab ...
- Knockout.js随手记(2)
计算属性 konckout.js的API文档,写的极为详细和生动,透过MVVM的运作原理,开发时只需专注于定义ViewModel逻辑,不需耗费心力处理TextBox.Select的onchange.o ...
- Knockout.js随手记(1)
新的开始,knockout.js 1.首先去http://knockoutjs.com/index.html下载knockout.js,最新的版本是2.3 2.知道什么是Knockout?它是个Jav ...
随机推荐
- net.sf.json Maven依赖配置
转自:https://blog.csdn.net/qq_36698956/article/details/80772984 今天搭框架开始实现前台的json了,于是逐个找适合的框架,发现要实现json ...
- beego简单的验证码实现以及验证
/** * 程序 */package controllers import ( "github.com/astaxie/beego" "github.com/ ...
- Convolution & Pooling exercise
convolution First, we want to compute σ(Wx(r,c) + b) for all valid (r,c) (valid meaning that the ent ...
- Debian9 ifconfig命令找不到解决办法
Debian9 ifconfig命令找不到解决办法 ifconfig.route.arp和netstat等命令行工具(它们统称为net-tools),管理和排查各种网络配置.这类工具原先起源于BSD ...
- angularjs input使用ng-model双向绑定无效bug解决
一.问题描述 当我们给input双向绑定变量的时候,使用ng-model有时候会出现无效的情况 二.解决办法 将绑定的变量写成对象的形式 控制器定义变量: $scope.inputText = {va ...
- 紫书 例题 9-1 UVa 1025 ( DAG的动态规划)
影响到状态的只有时间和在哪个车站(空间),所以可以设f[i][j]是时刻i的时候在第j个车站的最少等待时间 因为题目中的等待时间显然是在0时刻1车站,所以答案为f[0][1],那么就提醒我们从大推到小 ...
- LRJ入门经典-0906最短公共父串305
原题 LRJ入门经典-0906最短公共父串305 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 给定字符串A和字符串B,要求 ...
- Yum数据库错误
使用yum时提示数据库错误: /var/lib/rpm... open... db4 error from db->close:... 解决办法: 1.删除/var/lib/rpm目录下的__d ...
- Gonet2 游戏server框架解析之Agent(3)
客户端消息在Agent中的预处理流程. Agent定义好的三种请求: //api.go var RCode = map[int16]string{ 0: "heart_beat_req&qu ...
- HTML5吃豆豆游戏开发实战(一)使用Canvas绘制游戏主角
近期在学习HTML5.爱因斯坦曾说过,"最好的学习就是自己去经历". 于是.我想在学习HTML5的同一时候.做一款简单的小游戏,这样学习起来也会非常有趣的.我想做的是曾经小时候玩儿 ...