0

新しい EmberRC1 バージョンでは、作成したオブジェクトからスーパークラス メソッドを呼び出すことができないようです。他のオブジェクトを作成または拡張するために使用する標準のミックスインとビューがいくつかあります。いくつかのメソッドをオーバーライドしましたが、以前のバージョンで を使用して実現できるスーパー メソッドを実行する必要がありましたthis._super()。しかし、新しいバージョンでは、オブジェクトを作成すると、これは起こりません。

    window.App = Ember.Application.create();

App.Router.map(function(){
    this.resource("users");
});

App.UsersView = Ember.ContainerView.extend({
    init : function(){
        this._super();
        this.pushObject(App.TestView.create({
            didInsertElement : function() {
               this.$().append(' <br><h4>Appended at Object</h4> ');
            }
        }))
    }
});

App.TestView=Ember.View.extend({
    templateName:'test',
    didInsertElement : function() {
       this.$().append(' <br><h4>Appended at Class</h4> ');
    }
});

では、この部分は完全に削除されたのでしょうか、それともこのスーパー コールを別の方法で実現できるのでしょうか?

ここで私の問題を理解するにはjsfiddleです。

PS:他のメソッド名で実行する必要があるコードを持っていて、同じメソッドを呼び出すことができることを知っています。しかし、これに対する解決策があればいいのですが。

4

1 に答える 1

1

init メソッドから this._super() を呼び出すと、親が呼び出されます。削除されたのは、オブジェクトに対して create を呼び出し、init メソッドを渡すことです。その機能を引き続き使用できる createWithMixin メソッドがあります。

この機能に関するかなり詳細な投稿がここにあります。

ember の .create() と .createWithMixins() の違い

于 2013-03-15T17:00:58.530 に答える