gpt4 book ai didi

ember.js - Emberjs 计算属性可以依赖于其他模型属性吗?

转载 作者:行者123 更新时间:2023-12-02 08:05:30 24 4
gpt4 key购买 nike

我有一个模型:

app.ObjectOne = Em.Object.extend({
id: null,
count: null
});

还有另一个模型,它计算属性“SomeProperty”,我想依赖于 ObjectOne 中的属性“count”

app.ObjectTwo = Em.Object.extend({
id: null,
someProperty: function(){
return count+5;
}.property('app.SomeObjectController.count')

});

那么,我可以这样做吗?或者有没有其他办法可以做到;

主要思想是ObjectOne模型的数据在ObjectTwo之后,所以我要重新计算属性并重新渲染 View

最佳答案

如果我理解得好的话,你想要的行为正是 Ember.js 可以给你带来的。

首先,这是一个非常基本的模板:

<script type="text/x-handlebars">
Here, the template is updated each time this property is updated (equivalent to bound property)
{{App.objectTwo.someProperty}}
</script>​

这是 JavaScript。我不知道你是否真的想在这里使用 ObjectController,但你提到了它,所以我已经使用了它。 ObjectController 充当其 content 属性周围的代理。这意味着 someObjectController.get('count') 将尝试从 Controller 本身获取 count 属性,如果不存在,则 Controller 检索 count > 其内容的属性。

App = Ember.Application.create();
App.someObjectController = Ember.ObjectController.create();

App.ObjectOne = Em.Object.extend({
id: null,
count: null
});
App.objectOne = App.ObjectOne.create({
id: 1,
count: 42
});
App.someObjectController.set('content', App.objectOne);

App.ObjectTwo = Ember.Object.extend({
id: null,
someProperty: function(){
return App.someObjectController.get('count')+5;
}.property('App.someObjectController.count')
});
App.objectTwo = App.ObjectTwo.create({
id: 1
});

//in 3 seconds the count property is set to 0. You can see the template is updated
Ember.run.later(function(){
App.objectOne.set('count', 0);
},3000);

这是工作中的jsfiddle:http://jsfiddle.net/Sly7/M3727/4/

关于ember.js - Emberjs 计算属性可以依赖于其他模型属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977955/

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