0

現在、ember.js フレームワークを学習しようとしています。スターターキットを出発点として使用する非常に単純なアプリがあります。

app.js ファイルには以下が含まれます。

// Application
var App = Em.Application.create();

// Models
App.Person = Ember.Object.extend({
    fName: null,
    surname: null
});

// Controller
App.personController = Ember.ArrayController.create({
    content: [],
    init: function(){
        // create an instance of the person model
        var person = App.Person.create({
        fName: 'Fred',
        surname: 'Bloggs'
    });
    this.pushObject(person);
    }
});

そして、私index.htmlのはデフォルトのボイラープレートに基づいています:

<body>
  <script type="text/x-handlebars">
    {{#each App.personController}}
        <p>{{fName}} {{surname}}</p>
    {{/each}}
  </script>


  <!-- The missing protocol means that it will match the current protocol, either http or https. If running locally, we use the local jQuery. -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  <script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.2.min.js"><\/script>')</script>
  <script src="js/libs/handlebars-1.0.0.beta.6.js"></script>
  <script src="js/libs/ember-0.9.8.1.min.js"></script>
  <script src="js/app.js"></script>
</body>

ブラウザーでチェックインすると、js エラーは表示されず、レンダリングされた html には、ハンドルバーがレンダリングされていることが示されていますが、コンテンツはありません。

<div id="ember163" class="ember-view">
    <script id="metamorph-0-start" type="text/x-placeholder"></script><script id="metamorph-0-end" type="text/x-placeholder"></script>
</div>

何もレンダリングされない理由についてのヘルプや説明は大歓迎です。init 関数が単一のユーザーをレンダリングしたと思っていたでしょう

よろしく、

マーティン

4

2 に答える 2

1

var を使用せずに、App をグローバル名前空間として定義する必要があります。

http://jsfiddle.net/Sly7/GhBfn/

_super()@Jimmy が書いているように、init メソッドを呼び出すことを忘れないでください。

于 2012-06-18T18:51:14.110 に答える
1

this._super()var person を宣言する前に呼び出す必要があります。

于 2012-06-18T14:30:01.603 に答える