2

この非常に単純な Ember コードを書きましたが、何らかの理由でボタンを押してもイベントが発生しないようです。任意のヒント?

<!DOCTYPE html>

<html>

  <head>
    <title>Test</title>
  </head>

  <body>

    <script type="text/x-handlebars">
      {{#view CounterView}}
        Counter: {{Counter.value}}

        <button {{action "increment"}}>Add 1</button>
      {{/view}}
    </script>

    <script src="jquery-1.7.2.min.js"></script>
    <script src="handlebars-1.0.rc.1.min.js"></script>
    <script src="ember-1.0.pre.min.js"></script>

    <script>
      Counter = Ember.Object.create({
        value: 1,
      })

      CounterView = Ember.View.extend({
        increment: function(event) {
          Counter.incrementProperty('value');
        }
      })
    </script>
  </body>
</html>
4

2 に答える 2

3

イベント システムを機能させるには、Ember.js でアプリケーションを作成して初期化する必要があります (フレームワークが自動的に行います)。

jsfiddle を開始するデフォルトの Ember.js に例を適用すると、結果は次のようになります。

HTML テンプレート:

<script type="text/x-handlebars" data-template-name="application">
  {{#view MyApp.CounterView}}
    Counter: {{MyApp.counter.value}}
    <button {{action "increment"}}>Add 1</button>
  {{/view}}
</script>

Javascript:

//Thanks to @Trek Instructions:
//The following line creates one listener for each user event (e.g. 'click') and
//controls event delegation.
MyApp = Ember.Application.create();

MyApp.counter = Ember.Object.create({
  value: 1
});

MyApp.CounterView = Ember.View.extend({
  increment: function(event) {
    MyApp.counter.incrementProperty('value');
  }
});

作業フィドル: http://jsfiddle.net/6p6XJ/260/

于 2012-12-27T16:23:21.763 に答える
1

http://trek.github.com/、特に「実行可能な最小の Ember アプリケーション」の部分を読むことをお勧めします。

1.0.pre 以降、Ember アプリにはルーターが必要です。ただし、ネット上のほとんどのドキュメント/例は 0.9.5 時代を参照しています

トレック ガイド + ember ドキュメントは、フレームワークを始めるのに最適な方法です。

于 2012-12-27T04:39:06.343 に答える