0

Ember.js を既存の Rails アプリケーションに追加しrootElement、作成時にオプションを使用していますEmber.Application

これ以外にも、単純なモデルrootElementにバインドされた小さな ember テンプレートを挿入したい場所がいくつかあります。Ember.Object

私が探しているものを明確にすることを望む例でjsfiddleを作成しました:http://jsfiddle.net/amiel/x9fCz/2/

これを行う最善の方法は何ですか?

4

2 に答える 2

1

メッセージを防ぐにはDEPRECATION: Using the defaultContainer is no longer supported、ApplicationView#didInsertElement 内に childView を作成する必要があります。

App.ApplicationView = Ember.View.extend({
    didInsertElement: function() {
        var view = this.createChildView(App.ClockView);
        view.replaceIn('#now');
    }
});

App.ClockView#controller は App.ApplicationController にもなります。

于 2014-08-19T01:16:11.263 に答える
1

ハンドルバー テンプレートと一致するテンプレート名で、新しい ember ビューを作成しました。次に、ember イニシャライザでインスタンス化します。

Ember.Application.initializer({
  name: "clock_view",
  initialize: function(container, application) {
    var view = App.ClockView.create();
    view.replaceIn('#now');
  }
});

jsfiddle の完全な例を参照してください: http://jsfiddle.net/amiel/2FsxA/1/

他の誰かがこれを行うためのより良い方法を持っているかどうかを確認するために、私自身の答えを受け入れるつもりはありません。

更新: 別の可能な解決策があります: http://jsfiddle.net/amiel/2FsxA/3/

TL;DR:

App.ApplicationRoute = Ember.Route.extend({
    setupController: function(controller, model) {
        this.setupClock();
        this._super(controller, model);
    },
    setupClock: function() {
        var view = App.ClockView.create();
        view.replaceIn('#now');
    }
});
于 2013-09-13T00:47:48.330 に答える