<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Demo1-单向绑定</title>
<script type="text/javascript" src="/uploads/rs/376/pbcx3e1z/knockout-3.4.0.js"></script>
</head>
<body>
<!--单向绑定-->
<div>
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName" /></p>
</div>
<!--这段脚本实际项目中应该放在对应的JS文件中,然后在html中通过Script标签来引用即可-->
<!--JS代码也就是业务逻辑部分,将业务逻辑与Html代码分割开,使得View代码更加简洁,这样后期也易于维护-->
<script type="text/javascript">
function ViewModel() {
this.firstName = "Tommy";
this.lastName = "Li";
}
ko.applyBindings(new ViewModel());
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Demo2-双向绑定</title>
<script type="text/javascript" src="/uploads/rs/376/pbcx3e1z/knockout-3.4.0.js"></script>
</head>
<body>
<!--双向绑定-->
<div>
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
<p>First name: <input data-bind="value: firstName"/></p>
<p>Last name: <input data-bind="value: lastName" /></p>
</div>
<script type="text/javascript">
function ViewModel() {
this.firstName = ko.observable("Tommy");
this.lastName = ko.observable("Li");
}
ko.applyBindings(new ViewModel());
</script>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Demo3-依赖跟踪</title>
<script type="text/javascript" src="/uploads/rs/376/pbcx3e1z/knockout-3.4.0.js"></script>
</head>
<body>
<!--双向绑定-->
<div>
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
<p>First name: <input data-bind="value: firstName" /></p>
<p>Last name: <input data-bind="value: lastName"/></p>
<p>Full name: <strong data-bind="text: fullName"></strong></p>
<button data-bind="click: capitalizeLastName">LastName To Upper</button>
</div>
<script type="text/javascript">
function ViewModel() {
this.firstName = ko.observable("Tommy");
this.lastName = ko.observable("Li");
// 依赖跟踪
this.fullName = ko.computed(function () {
return this.firstName() + " " + this.lastName();
},this);
// 通过代码改变observable的值
this.capitalizeLastName = function() {
this.lastName(this.lastName().toUpperCase());
};
}
ko.applyBindings(new ViewModel());
</script>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Demo4-列表绑定</title>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/376/pbcx3e1z/knockout-3.4.0.js"></script>
</head>
<body>
<table>
<thead>
<tr>
<td>Name</td>
<td>Amount</td>
<td>Price</td>
</tr>
</thead>
<tbody data-bind="foreach: items">
<tr>
<td data-bind="text: product.name"></td>
<td><select data-bind="options:[1,2,3,4,5,6],value: amount"></select></td>
<td data-bind="text: subTotal"></td>
<td><a href="#" data-bind="click: $root.remove">Remove</a></td>
</tr>
</tbody>
</table>
<h3>Order Price: <span data-bind="text: price"></span></h3>
<button data-bind="click: addComputer">Add a Computer</button>
<script type="text/javascript">
var products = [{ name: "Learnighard 学习笔记", price: 49 },
{ name: "小米Note", price: 999 },
{ name: "宏碁笔记本", price: 4999 }];
// 订单类
function Order() {
var self = this;
this.items = ko.observableArray([
new Item(products[0], 1),
new Item(products[1],2)
]);
// 订单总价
this.price = ko.computed(function() {
var p = 0;
for (var i = 0; i < self.items().length; i++) {
var item = self.items()[i];
p += item.product.price * item.amount();
}
return p;
}, self);
this.remove = function(item) {
self.items.remove(item);
};
this.addComputer = function () {
self.items.push(new Item(products[2], 1));
};
}
// 订单项类
function Item(product, amount) {
var self = this;
this.product = product;
this.amount = ko.observable(amount);
// 订单项总价
this.subTotal = ko.computed(function() {
return self.amount() * self.product.price;
}, self);
}
ko.applyBindings(new Order());
</script>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Demo5-模板绑定</title>
<script type="text/javascript" src="/uploads/rs/376/pbcx3e1z/knockout-3.4.0.js"></script>
</head>
<body>
<!--模板绑定,div的内容为personTemplate模板内的标签-->
<!--即最终生成如下标签-->
<!--<div>
<p>Name: <strong data-bind="text: name"></strong></p>
<p>Age: <strong data-bind="text: age"></strong></p>
</div>-->
<div data-bind="template:'personTemplate'"></div>
<script id="personTemplate" type="text/html">
<p>Name: <strong data-bind="text: name"></strong></p>
<p>Age: <strong data-bind="text: age"></strong></p>
</script>
<script type="text/javascript">
var ViewModel = {
name: ko.observable('Tommy'),
age: ko.observable(28),
makeOlder: function() {
this.age(this.age() + 1);
}
};
ko.applyBindings(ViewModel);
</script>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Demo6-模板绑定</title>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/376/pbcx3e1z/knockout-3.4.0.js"></script>
</head>
<body>
<h2>Participants</h2>
Here are the participants:
<div data-bind="template: { name: 'persontemplate', foreach: people }"></div>
<script type="text/html" id="persontemplate">
<h3 data-bind="text: name"></h3>
<p>Age: <span data-bind="text: age"></span></p>
</script>
<script type="text/javascript">
function MyViewModel() {
this.people = [
{ name: 'Tommy', age: 27 },
{ name: 'Frank', age: 33 }
];
}
ko.applyBindings(new MyViewModel());
</script>
</body>
</html>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有