首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算属性和@ and

计算属性和@ and
EN

Stack Overflow用户
提问于 2015-08-11 21:05:16
回答 1查看 136关注 0票数 3

我一直在阅读文档和API,很难找到对以下内容的解释:

代码语言:javascript
复制
export default Ember.Controller.extend({
  collectionTotal: function() {
    var games = this.get('model');
    return games.length
  }.property('@each')
});

.property('@each')到底是怎么回事?我知道我要拿回计算的属性,我不明白@each是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 03:42:47

什么是@each**?**

@each观察数组中每个项的各个属性。

例如,如果我观察到users.@each.name,我将收到一个事件,如果:

  • users属性被替换,例如this.set('users', ...)
  • users中添加或删除项
  • name属性对任何项都有更改

可以使用以下语法观察多个属性:users.@each.{name,email}

你不能给它们筑巢。这不起作用:users.@each.friends.@each.mood

请参阅更多正式文件:

  • 使用@each计算的属性和聚合数据
  • Ember.ArrayProxy类

回答您的问题

@each本身是没有意义的。如果只需要观察添加或删除的项,则可以观察[]属性。

通常,您应该观察函数正文中使用的相同属性。在您的示例中,这将是modellength

代码语言:javascript
复制
  collectionTotal: function() {
    var games = this.get('model');
    return games.get('length');
  }.property('model.length')

或相当于:

代码语言:javascript
复制
  collectionTotal: function() {
    return this.get('model.length');
  }.property('model.length')

或相当于:

代码语言:javascript
复制
  collectionTotal: Ember.computed.reads('model.length')
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31951925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档