1

D3.js フォース レイアウトを使用して、ember.js モデルのデータに基づいてノードとリンクのグラフを描画しています。App.DeviceモデルとモデルApp.Interface(ネットワーク デバイスとネットワーク インターフェイス) があるので、レンダリングするノード/リンクを生成するために、返されたデータを繰り返し処理する必要がApp.Device.find()あります。App.Interface.find()

ただし、それほど速くはありません。Ember のすべては非同期です。ビューから Access モデルの関連付けを見ましたが、オブザーバーを使用すると、ルートがナビゲートされたときではなく、モデルが変更されたときにのみ再描画されます。また、2 つの検索の結果であるモデルを作成する方法もわかりません。そのため、2 つの結果のうちの 1 つにのみオブザーバーを設定できます。

raphael または d3 を使用した emberjs ビューも見つかりましたが、そこにあるすべてのリンクは無効/古くなっているようです。

4

1 に答える 1

0

私がやろうとしていたことを行う最も簡単な方法は、ルート内に疑似複合モデルを作成することであることがわかりました。

App.NetworkmapRoute = Ember.Route.extend({
   model: function() {
      return Ember.Object.create({
         devices: App.Device.find(),
         interfaces: App.Interface.find()
      });
   }
});

次に、コントローラー ( である必要があります)で計算されたプロパティを作成し、ObjectControllerそれらのコントローラー プロパティを監視して描画を行うビューでオブザーバーを使用できます。これは機能しているようです。

于 2013-05-24T19:14:17.917 に答える