0

最近、Ember.js 0.9.8.1 から Ember.js 1.0-pre2 に更新しました。バインディングを設定すると、オブザーバーが起動されないことがわかりました。

問題を示す小さな例を次に示します。

テンプレート:

<script type="text/x-handlebars">
    {{view App.SimpleView textBinding="App.text"}}
</script>​

コード:

App = Ember.Application.create();
App.text = "new";

App.SimpleView = Ember.View.extend({
    text: 'old',
    fired: 'no',
    template: Ember.Handlebars.compile('Text: {{view.text}}. Observer fired: {{view.fired}}'),

    textObserver: function() {
        this.set('fired', 'yes');
    }.observes('text')
});

Ember.js 0.9.8.1 では期待どおりに動作し、Text: new を出力します。オブザーバーの起動: はい, ( fiddle ) ただし、1.0-pre2 では、オブザーバーは起動されません ( fiddle )。

これは小さなバグのようなものですが、報告する前に、API で何か変更があったかどうかを尋ねたいと思います。

4

1 に答える 1

2

さて、Kristofor Selden との話し合いの結果、0.9.8.1 の動作はバグでした。1.0.pre-2 では、フィドルで、ビューがインスタンス化されると、App.text は既に "new" に設定されています。これは、オブザーバーが起動されないことが予想される動作です。

于 2012-11-27T16:50:07.093 に答える