使用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 ...
随机推荐
- 80.简单搭建nodeJS服务,访问本地站点文件
转自:https://blog.csdn.net/iteye_1217/article/details/82679843 搭建nodejs服务器步骤: 1.安装nodejs服务(从官网下载安装),no ...
- 4.graph.h
#pragma once #include <stdio.h> #include <graphics.h> #include <mmsystem.h> #pragm ...
- .net数字转换成汉字大写
public class Num2Rmb { private String[] hanArr={"零","壹","贰","叁&qu ...
- Android 使用TabLayout、ViewPager和Fragment实现顶部菜单可滑动切换
效果图如下 首先,要使用控件需要添加design library,在Android Studio中添加 compile 'com.android.support:design:23.4.0' 然后是布 ...
- installp 软件的4种状态
安装和维护LPP软件 installp 对包提供了如下四种主要的操作: Apply Commit Reject Remove webes.4.0.0.1 commited webes.4. ...
- SQL传数组到存储过程中
方法一 CREATE PROC D_t_Base_Employee @str varchar(100) as declare @sql varchar(1000) set @sql='DELETE E ...
- angularjs之手机输入法回车变搜索,并触发事件,兼容pc回车事件
一.效果:回车按钮变搜索 之前的输入法: 之后的输入法: 二.功能实现 <input type="search" id="search_input" pl ...
- Django transaction 误用之后遇到的一个问题与解决方法
今天在调试项目开发好的一个模块的时候,发现了一个很诡异的现象,最后追踪发现是因为在项目中事务处理有误所致.这个问题坑了我好一会,所以记录一下,以免再踩坑.下面开始详述. 我们都知道 Django 框架 ...
- 洛谷 P3130 [USACO15DEC]计数haybalesCounting Haybales
P3130 [USACO15DEC]计数haybalesCounting Haybales 题目描述 Farmer John is trying to hire contractors to help ...
- 模板实参推导 & xx_cast的实现
首先,类模板必须被显式特化.当然了,可以通过一个辅助函数,通过参数类型,返回特化的类模板,来间接处理. 这个技术被广泛应用在ptr_fun, make_pair, mem_fun, back_inse ...