<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      KnockoutJS 3.X API 第七章 其他技術(6) 使用“fn”添加自定義函數

      有時,您可能會通過向Knockout的核心值類型添加新功能來尋找機會來簡化您的代碼。 您可以在以下任何類型中定義自定義函數:

      type-hierarchy

       

      因為繼承,如果你附加一個函數到ko.subscribable,它將可用于所有其他的。 如果你附加一個函數到ko.observable,它將被ko.observableArray繼承而不是ko.computed繼承。

      要附加自定義函數,請將其添加到以下可擴展性點之一:

      • ko.subscribable.fn
      • ko.observable.fn
      • ko.observableArray.fn
      • ko.computed.fn

      然后,您的自定義函數將可用于從該點開始創建的所有類型的值。

      注意:最好僅將此可擴展點用于真正適用于各種場景的自定義函數。 如果你只打算使用一次,你不需要添加自定義函數到這些命名空間。

      示例:可見數組的過濾視圖

      這里有一種方法來定義一個過濾器按屬性函數,將在所有后續創建的ko.observableArray實例上可用:

      ko.observableArray.fn.filterByProperty = function(propName, matchValue) {
          return ko.pureComputed(function() {
              var allItems = this(), matchingItems = [];
              for (var i = 0; i < allItems.length; i++) {
                  var current = allItems[i];
                  if (ko.unwrap(current[propName]) === matchValue)
                      matchingItems.push(current);
              }
              return matchingItems;
          }, this);
      }

      這返回一個新的計算值,它提供了數組的過濾視圖,同時保持原始數組不變。 因為過濾的數組是一個計算的observable,所以當底層數組發生變化時,它將被重新計算。

      以下實例演示如何使用此:

      All tasks ( )

      Done tasks ( )

      UI源碼:

      <h3>All tasks (<span data-bind="text: tasks().length"> </span>)</h3>
      <ul data-bind="foreach: tasks">
          <li>
              <label>
                  <input type="checkbox" data-bind="checked: done" />
                  <span data-bind="text: title"> </span>
              </label>
          </li>
      </ul>
       
      <h3>Done tasks (<span data-bind="text: doneTasks().length"> </span>)</h3>
      <ul data-bind="foreach: doneTasks">
          <li data-bind="text: title"></li>
      </ul>

      視圖模型源碼:

      function Task(title, done) {
          this.title = ko.observable(title);
          this.done = ko.observable(done);
      }
      ko.observableArray.fn.filterByProperty = function(propName, matchValue) {
              return ko.pureComputed(function() {
                  var allItems = this(), matchingItems = [];
                  for (var i = 0; i < allItems.length; i++) {
                      var current = allItems[i];
                      if (ko.unwrap(current[propName]) === matchValue)
                          matchingItems.push(current);
             }
             return matchingItems;
          }, this);
      }
      
      function AppViewModel() {
          this.tasks = ko.observableArray([
              new Task('Find new desktop background', true),
              new Task('Put shiny stickers on laptop', false),
              new Task('Request more reggae music in the office', true)
          ]);
       
          // Here's where we use the custom function
          this.doneTasks = this.tasks.filterByProperty("done", true);
      }
       
      ko.applyBindings(new AppViewModel());

      這不是強制性的

      如果你傾向于過濾可觀察的數組很多,添加一個filterByProperty全局可見的數組可能會使你的代碼更整潔。 但是如果你只需要偶爾過濾,你可以選擇不附加到ko.observableArray.fn,而只是手工構造doneTasks如下:

      this.doneTasks = ko.pureComputed(function() {
          var all = this.tasks(), done = [];
          for (var i = 0; i < all.length; i++)
              if (all[i].done())
                  done.push(all[i]);
          return done;
      }, this);
      posted @ 2016-10-19 11:13  SmallProgram  閱讀(1073)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 无码天堂亚洲国产AV| 日本道不卡一二三区视频 | 久久婷婷国产精品香蕉| 亚洲精品日韩在线观看| 国产精品成熟老女人| 亚洲欧美综合人成在线| 枣强县| 97久久精品午夜一区二区| 亚洲欧美人成电影在线观看| 国产成人午夜福利精品| 资源在线观看视频一区二区 | 91麻豆视频国产一区二区| 国产午夜亚洲精品久久| 激情综合网激情综合| 日韩精品卡1卡2日韩在线| 亚洲丰满熟女一区二区v| 成人福利国产午夜AV免费不卡在线| 精品精品国产国产自在线| 两性午夜刺激性视频| 久热这里只有精品视频六| 狠狠躁夜夜躁人人爽天天5| 亚洲欧美精品综合在线观看| 女同精品女同系列在线观看| 日韩少妇人妻vs中文字幕| 项城市| 久久精品丝袜高跟鞋| 一本久久a久久精品亚洲| av中文字幕国产精品| 99re6这里有精品热视频| 精品国产国语对白主播野战| 欧美巨大极度另类| 中文字幕日韩精品东京热| 狠狠干| 亚洲日韩亚洲另类激情文学| 亚洲欧洲日韩精品在线| 成人免费ā片在线观看| 亚洲精品揄拍自拍首页一| 无码 人妻 在线 视频| 国产亚洲精品AA片在线播放天| 国产裸体永久免费无遮挡| 国产精品户外野外|