AURELIA-计算字段

AURELIA-计算字段,aurelia,Aurelia,我对aurelia框架中的计算字段有问题。。。 背景: 我们有三级树状结构,为了更好地表达我们有公寓、楼层和公寓。所有类都是json数组,每个类都有一些属性作为价格 我需要的是: 我需要创建类“Compute”,它封装了字段的观察值,类输入的函数类似于 this.Price = ko.computed(function() { return self.Quantity() * $Flat.PricePerBoxStatic(); }); 也就是说,1套公寓,3层,每层5套。当我改变公

我对aurelia框架中的计算字段有问题。。。 背景: 我们有三级树状结构,为了更好地表达我们有公寓、楼层和公寓。所有类都是json数组,每个类都有一些属性作为价格

我需要的是: 我需要创建类“Compute”,它封装了字段的观察值,类输入的函数类似于

this.Price = ko.computed(function() {
   return self.Quantity() * $Flat.PricePerBoxStatic();
  });
也就是说,1套公寓,3层,每层5套。当我改变公寓的价格时,我需要计算地板上所有的地板和整个公寓的价格。因此,一旦公寓价格发生变化,将立即重新计算整棵树的价格

感谢大家提出的任何解决方案


那么,假设您要查找的是
总数

在视图模型中:

  get total(): number {
    // put here your calculation logic and return your total
  }
在您看来,只需使用字符串插值:

<p>${total}</p>
${total}


每当参与计算总计的任何变量更改其值时,将重新计算总计,您将在视图中看到更新后的值。

不幸的是,堆栈溢出不是为您提供完整解决方案的。问题应该表明你已经试图解决这个问题了。在这一点上,如果你陷入困境或需要帮助,那么堆栈溢出是一个正确的问题。“当参与计算total的变量改变其值时”——这是错误的。默认情况下,Aurelia使用脏检查,这意味着与Knockout不同,它每200毫秒(默认)轮询一次该属性,这意味着a)依赖值更改和屏幕上显示的更新值之间可能会有轻微延迟,b)它会影响性能。但是
@computedFrom('dependentProperty1',dependentPropertyN')
装饰器起到了解救作用。@Balázs,在给定的上下文中,您会将什么作为参数传递给
@computedFrom
?参与值计算的每个属性的名称。因此,如果
propA
值的变化应导致重新计算,则应将其包括在内。如果
propB
的值的变化也会导致它,那么也包括它。它告诉Aurelia选择退出轮询,因为它可以订阅参数列表中显式列出的参数。要回答您的问题,请将属性名称设置为字符串。请注意,这可以直接或间接地工作,也就是说,您的计算机可以依赖于其他计算机等。如果我做对了,OP试图观察的是一个对象数组
@computedFrom
似乎没有很好地观察到这一点