1

テンプレート名を変数に格納しているという状況があります。たとえば、

var config = { view: "PeopleView", .... } ;

あなたができないこと

{{view App[config.view]}}

これが可能であれば、私はまだ解決策に興味があります! とにかく、Handlebars ヘルパーでこれを修正することにしました。

{{setVariableView config}}

...

Ember.Handlebars.registerBoundHelper('setVariableView', function(value, options) {
    return App[value.view].create(value) ; // <-- this doesn't work :)
}) ;

この時点で、コンパイルされた PeopleView を呼び出す方法がわかりませんか? 助言がありますか ?

乾杯

4

1 に答える 1

1

最初に、構成オブジェクトを作成する必要があります。

App.config = Ember.Object.create({ view: 'App.MyView' });

append次に、作成したヘルパーを登録しますが、この方法を使用する場合はビューを手動で編集する必要があるため、少し変更する必要があります。

Ember.Handlebars.registerBoundHelper('setVariableView', function(value, options) {
    var view = eval(value.view).create();
    view.append();
});

構成ファイルをsetVariableViewヘルパーに渡すと、構成に渡されたビューがレンダリングされます。

{{setVariableView App.config}}

唯一の懸念は、の使用ですeval。助けにならないのは早朝かもしれませんが、現時点ではより良い代替案が思いつきません.

于 2013-02-12T09:50:15.633 に答える