美文网首页
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小记

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