美文网首页
knockout小记

knockout小记

作者: Web枫桥夜泊 | 来源:发表于2017-08-31 11:42 被阅读0次

一、基础部分lastName

单次绑定

从ViewModel绑定至UI这一层只进行一次绑定,不追踪数据在任何一方的

function AppViewModel() {    this.firstName = "Bert";    this.lastName = "Bertington";}
ko.applyBindings(new AppViewModel());
<p>First name:<stong data-bind="text:firstName"></strong></p>
<p>Last name:<stong data-bind="text:lastName"></strong></p>

双向绑定

输入框中值发生改变时,标签中显示内容相应发生改变

function AppViewModel() {
  this.firstName = ko.observable("Bert");
  this.lastName = ko.observable("Bertington");
}
ko.applyBindings(new AppViewModel());
<p>First name:<strong data-bind="text: firstName"></strong></p>
<p>Last name:<strong data-bind="text: lastName"></strong></p>
<p>First name:<input date-bind="value: firstName"></p>
<p>Last name: <input date-bind="value: lastName"></p>

依赖绑定

fullName依赖于firstName和lastName,改变firstName和lastName任意值,fullName的显示也相应改变

function AppViewModel() {
  this.firstName = ko.observable("Bert");
  this.lastName = ko.observable("Bertington");
  this.fullName = ko.computed(function() {  
    return this.firstName() + " " + this.lastName();
  }, this);
}
ko.applyBindings(new AppViewModel());
<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>   

绑定数组

seats对象绑定了一个集合对象,在html view中,通过foreach指令渲染视图

<h2>Your seat reservations</h2>
<table>
  <thead>
    <tr>
      <th>Passenger name</th>
      <th>MealSurcharge</th>
      <th>Surcharge</th>
    </tr>
  </thead>
  <tbody>
   <tr>
     <td data-bond="text: name"></td>
     <td data-bind="meal().mealNmae"></td>
     <td data-bind="text:meal().price"></td>
   </tr>  
  </tbody>
</table>


function SeatReservation(name, initialMeal) {
   var self = this;
   self.name = name;
   self.meal = ko.observable(initialMeal);
}  

function ReservationsViewModel() {
   var self = this;
   self.availableMeals = [ 
     { mealName: "Standard (sandwich)", price: 0 },
     { mealName: "Premium (lobster)", price: 34.95 },
     { mealName: "Ultimate (whole zebra)", price: 290 }
   ];
   self.seats = ko.observableArray([
     new SeatReservation("Steve", self.availableMeals[1]),
     new SeatReservation("Bert", self.availableMeals[2])
   ]);
 }
ko.applyBindings(new ReservationsViewModel());

哪位大神这玩意怎么编写代码 我能说这是一个一个敲出来的吗?  实在是累啊  求好心人告知

相关文章

  • knockout小记

    一、基础部分lastName 单次绑定 从ViewModel绑定至UI这一层只进行一次绑定,不追踪数据在任何一方的...

  • 久违的MVVM

    Knockout简介 (Introduction) Knockout是一个轻量级的UI类库,通过应用MVVM模式使...

  • Knockout 学习

    Knockout.js Knockout是一款很优秀的JavaScript库 KO重要特性: 优雅的依赖跟踪声明式...

  • Hello, Knockout

    来源 也许你有过一些使用MVVM框架的经验,并且你熟悉各种主流框架的使用规则(Angular, Knockout)...

  • knockout-amd-helpers

    knockout-amd-helpers What is the point of this library? T...

  • Vincent van Gogh 05

    The potato Eaters is his first knockout masterpiece. 《吃土豆...

  • ko网址

    http://www.aizhengli.com/knockoutjs/57/knockout-applybind...

  • Results 2【USP38  Deficiency  Enh

    首先我们回顾一下SUMMARY: Knockdown or knockout of USP38 incre...

  • 每日英汉对照(86-4.28)

    1 Janet is a knockout. 珍妮特真迷人。 2 I think he has a crush o...

  • Knockout自学解惑——select

    最近自学了一下knockout,在绑定select控件时遇到一点小麻烦,终于解决了(马虎马虎不得···)。 问题描...

网友评论

      本文标题:knockout小记

      本文链接:https://www.haomeiwen.com/subject/fsxedxtx.html