2

私は0.97からアップグレードしたと信じており、非推奨の警告で指示された構成設定を使用していましたが、アップグレード時にアプリが完全に壊れるのを防ぐことはできませんでした

私のハンドルバーコードにはこれがあります

<script type="text/x-handlebars" data-template-name="say-hello">
    {{name}}</br>
    {{hello}}
</script>​

そして、私のビューコードはこれです

App = Ember.Application.create();

App.myView = Ember.View.create({
    templateName: 'say-hello',
    nameBinding: 'App.arrayProxy.name',
    helloBinding: 'App.arrayProxy.hello',
}).append();

App.arrayProxy = Ember.ArrayProxy.extend({
    name: "test",
    hello: function(){
      return 'hello ' + this.get('name')
    }.property('name')
})

Niether プロパティがビューに表示されます。バインディングが機能しなくなったようです。console.log を hello に追加しても、呼び出されることはありません。何らかの理由で、非常に大きな PITA である ember 1.0 では、プロパティがまったく異なる方法で処理されています。何かを追加または削除する必要がある場合、最新バージョンでそれを行う方法について誰かが洞察を持っていますか?

更新: これがどのように機能しないかを示す jsfiddle ですhttp://jsfiddle.net/664H9/

4

1 に答える 1

4

jsfiddle には、機能しないものが 3 つあります。

  • ビューを追加します。私にとっては、デフォルトのテンプレートを (data-template-name なしで) 宣言し、その中のビューを参照する方がよいでしょう。Ember がビューを作成します

  • 1.0 以前から、ビューのプロパティをテンプレートに呼び出すには、接頭辞を付ける必要があります。view

  • 配列プロキシのインスタンスを作成していないため、バインディングは機能しませんが、クラスを作成しているだけです (0.9.7 でも、これは機能しないはずです。

ここに動作するjsfiddleがあります:http://jsfiddle.net/Sly7/664H9/22/

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

<script type="text/x-handlebars" data-template-name="my-view">
  {{view.name}}</br>
  {{view.hello}}
</script>​
App = Ember.Application.create();

App.ApplicationView = Ember.View.extend({
  nameBinding: 'App.arrayProxy.name',
  helloBinding: 'App.arrayProxy.hello',
});

App.arrayProxy = Ember.ArrayProxy.create({
  name: "test",
  hello: function(){
    return 'hello ' + this.get('name')
  }.property('name')
});

App.initialize();

</p>

于 2012-08-29T15:09:33.000 に答える