1

私が持っているオブジェクトの数であるバインディングまたは計算されたプロパティを作成する方法を理解しようとしています。次の方法で番号を取得できます(と思います):

App.MyObject.all().get("length")

関数内でそれを使用してコントローラー プロパティを作成すると、より多くのオブジェクトがダウンロードされても更新されません。

numOfMyObjects: function(){
  return App.MyObject.all().get("length");
}.property()

現在、ApplicationController にこれがありますが、0 と表示されます。

すべてのオブジェクトに対してこれを行う方法と、フィルター処理されたオブジェクトのセットに対しても行う方法を知りたいです。

ありがとう。

4

1 に答える 1

1

メソッドを起動するために観察する必要があるプロパティを Ember に伝える必要がありますnumOfMyObjects。例えば:

numOfMyObjects: function(){
  return App.MyObject.all().get("length");
}.property('myArray.length');

ただし、コントローラー自体を持っているため、これはあなたのケースでは機能しませんApp.MyObject。代わりに、コントローラーが表すモデルの適切なルートを指示したいのです。

modelこの方法では、ハンドルバーで にアクセスできるため、計算されたプロパティを実際に作成する必要はありません。

例としてまとめた JSFiddle を参照してください: http://jsfiddle.net/ESkkb/

コードの主要部分は次の場所にありますIndexRoute

App.IndexRoute = Ember.Route.extend({
    model: function() {
        return App.Cat.find();
    }
});

IndexControllerすべての猫を表す必要があることを に伝えています。それが完了したら、ビューに猫を表示できます。この場合は、猫の数を表示できます。

Count: {{length}}
于 2013-02-17T01:18:29.250 に答える