0

私はここで公開されているチュートリアル/ガイドをフォローしています:http ://www.adobe.com/devnet/html5/articles/flame-on-a-beginners-guide-to-emberjs.html

これは私がEmber.jsを使い始めるのに大いに役立ちましたが、彼の例のコードはEmber.jsバージョン0.9.6で動作しますが、1.0preバージョンでは動作しないことがわかりました。App.labelController新しいバージョンを使用する場合、各アイテムのリストアイテムを生成する必要がある私のハンドルバーコードは何もしません。これは意図的な変更ですか?もしそうなら、どうすれば今同じ効果を達成することができますか?

編集:私は実際に重大な変更をバージョン0.9.7.10.9.8の間に絞り込みました

私は次のコードを持っています(参照用):

  /**************************
  * Application
  **************************/

  // Create the Ember.js application framework
  App = Em.Application.create();

  /**************************
  * Models
  **************************/

  // The "model" for the label object
  App.Label = Em.Object.extend({
    id: null,
    name: null,
    svg: null
  });

  /**************************
  * Views
  **************************/

  /**************************
  * Controllers
  **************************/

  // The "controller" for the label objects
  App.labelController = Em.ArrayController.create({
    content: [],
    init: function() {
      // Fake some data arriving from the server
      for (var i = 0; i < 10; i++)
      {
        var label = App.Label.create({
          id: i,
          name: 'Label 0' + i,
          svg: null
        });
        this.pushObject(label);
      }
    }
  });

そして次のHTML:

  <div class="row-fluid">        
    <div class="span3">
      <ul class="nav nav-list">
        <script type="text/x-handlebars">
          {{#each App.labelController}}
            <li>
              <a href="#">{{name}}</a>
            </li>
          {{/each}}
        </script>
      </ul>
    </div>
    <div class="span9" id="drawContainer">
    </div>
  </div>
4

1 に答える 1

1

メソッドを呼び出すthis._super()のを忘れました。App.labelController#init

これがあなたの JSFiddle です: it does not work .

そして、呼び出しを伴う JSFiddle _super: それは動作します。

于 2012-09-07T09:53:25.647 に答える