「Knockout.js」の版間の差分

imported>Administrator
編集の要約なし
imported>Administrator
35行目: 35行目:
   <p>First name: <strong data-bind="text: firstName"></strong></p>
   <p>First name: <strong data-bind="text: firstName"></strong></p>
   <p>Last name : <strong data-bind="text: lastName"></strong></p>
   <p>Last name : <strong data-bind="text: lastName"></strong></p>
</body>
</html>
</source>
computedメソッドで関数をバインドできる。
<source lang="html5">
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Knockoutjs - Test01</title>
  <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
  <script type="text/javascript" src="knockout-2.0.0.js"></script>
  <script type="text/javascript">
    jQuery(function() {
      // ready関数
      // knockoutjsはDOMが準備されてからじゃないと動かないよ。
      // モデル
      var AppViewModel = function() {
        // observable
        this.firstName = ko.observable("Mono");
        this.lastName  = ko.observable("Book");
        // computed
        this.fullName = ko.computed(function() {
          return this.firstName() + " " + this.lastName();
        }, this);
        this.capitalizeLastName = function() {
          var currentVal = this.lastName();
          this.lastName(currentVal.toUpperCase());
        };
      };
      // バインディング
      ko.applyBindings(new AppViewModel());
    });
  </script>
</head>
<body>
  <p>First name: <strong data-bind="text: firstName"></strong></p>
  <p>Last name : <strong data-bind="text: lastName"></strong></p>
  <p>Full name : <strong data-bind="text: fullName"></strong></p>
  <button data−bind="click: capitalizeLastName">Go caps</button>
</body>
</body>
</html>
</html>