gpt4 book ai didi

javascript - 升级到 Ember 1.0 计算属性不再适用于 View

转载 作者:行者123 更新时间:2023-11-29 18:26:51 27 4
gpt4 key购买 nike

我相信我是从 0.97 升级的,甚至使用了弃用警告告诉我的配置设置,但这并没有阻止我的应用程序在升级时完全崩溃

我的 Handlebars 代码有这个

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

我的 View 代码是这样的

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 属性显示在 View 中。就像绑定(bind)甚至不再起作用一样。即使我向 hello 添加一个 console.log,它也永远不会被调用。由于某些原因,ember 1.0 中的属性处理方式完全不同,这是一个非常大的 PITA。如果我必须添加或删除某些内容,是否有人对我在最新版本中的操作方式有任何见解?

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

最佳答案

在你的 jsfiddle 中有三样东西是行不通的:

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

  • 从 1.0 pre 开始,要将 View 的属性调用到模板中,您必须在它们前面加上 view

  • 您的绑定(bind)无法工作,因为您没有创建数组代理的实例,而只是创建了一个类(我认为即使在 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();

关于javascript - 升级到 Ember 1.0 计算属性不再适用于 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12179510/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com