码迷,mamicode.com
首页 > Web开发 > 详细

knockout.js--基本用法

时间:2017-11-11 00:37:15      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:style   data-   不能   标签   访问   round   data   upd   需要   

1,HTML元素的面向对象的赋值,数据绑定

  text绑定:为p,span,div,td等加text属性值(即元素内部显示的文本),

  value绑定:为input添加value属性值,

  attr绑定:为元素动态添加他们的属性,如a标签的href,title等等

  visible绑定:动态显示隐藏指定的标记,TRUE为显示,FALSE为隐藏

  width绑定:可以绑定一个对象,然后在内部标记里就可以访问对象的属性。

<p data-bind="with:lines">
    单价:<input type="text" data-bind=‘value:productPrice,  valueUpdate: "afterkeydown"‘ />
    数量:<input type="text" data-bind=‘visible:productPrice() > 0,value: productCount, valueUpdate: "afterkeydown"‘ />
    小计:<span data-bind="text:total"></span>

</p>
<script type="text/ecmascript">
    var product = function () {
        self = this;
        self.id = 1;
        self.name = "测试产品";
        self.productPrice = ko.observable("0"); //ko.observable会先设置值再返回一个函数赋值给 价格(self.productPrice),价格就被实时监控,通过productPrice()获取属性值,通过productPrice("4567")改变变量的值
        self.productCount = ko.observable("1");
        self.total = ko.computed(function () {

            return self.productCount() * self.productPrice();
        });
    }
    var products = function () {
        var self = this;
        self.lines = ko.observable(new product());//new 实例化一个函数==view model,或直接声明一个对象成为view model
    }
    ko.applyBindings(new products());//data-bind将viewmodel和HTML关联一起,但是浏览器不能识别data-bind,ko.applyBindings(ele1,ele2)激活knockout。applyBindings有两个参数,第一个为必选(创建viewModel),第二个可选用来指定knockout控制HTML的范围。
</script>

  当productPrice 为0时,会将productCount所在的元素隐藏,而这个实例中的数据返回为一个对象lines,这时如果希望访问它内部属性,需要我们使用with关键字。

knockout.js--基本用法

标签:style   data-   不能   标签   访问   round   data   upd   需要   

原文地址:http://www.cnblogs.com/i-douya/p/7816905.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!