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 它甚至都不会被调用。由于某种原因,在 ember 1.0 中处理的属性完全不同,这是一个非常大的 PITA。如果我必须添加或删除某些内容,是否有人对我如何在最新版本中执行此操作有任何见解?

更新:这是一个 jsfiddle 来展示它是如何不起作用的http://jsfiddle.net/664H9/

4

1 回答 1

4

您的 jsfiddle 中有三件事不起作用:

  • 附加视图。对我来说,最好声明一个默认模板(没有数据模板名称),并引用其中的视图。Ember 将为您创建视图

  • 从 1.0 pre 开始,要将视图的属性调用到模板中,您必须在它们前面加上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 回答