2017-05-05 303 views
2

如何处理我有一个自定义属性的情况,让我们说它是一个寻呼机,其中我有属性totalItems,currentPage和itemsPerPage等。还有一个名为numberOfPages的计算属性。您如何在自定义属性之外“共享”此属性numberOfPages。在角度上,你可以将它设置在$ scope上。在aurelia中如何做到这一点?引用属性的自定义属性

回答

2

使用属性name.ref

<div pager="..." pager.ref="pager"> 
    <span>${pager.numberOfPages} pages</span> 
</div> 

REF

创建到HTML元素,组件或组件的部分的引用。

  • ref="someIdentifier"element.ref="someIdentifier" - 在DOM中创建对HTMLElement的引用。
  • attribute-name.ref="someIdentifier" - 创建对自定义属性的视图模型的引用。
  • view-model.ref="someIdentifier" - 创建对自定义元素的视图模型的引用。
  • view.ref="someIdentifier" - 创建对自定义元素的视图实例(而非HTML元素)的引用。
  • controller.ref="someIdentifier" - 创建对自定义元素的控制器实例的引用。

- aurelia docs

工作要点这里: https://gist.run/?id=0b60a1687e213797a8adc0d5ca870c06

编辑: 如果你实际上是建立一个寻呼机,考虑与模板一部分来创建自定义元素。你会有一个更容易的时间。

+0

ups如果你喜欢它,检查你是否喜欢它,看到你的下一个问题 –

+0

唯一的问题我看到这个解决方案是它没有真正设置绑定,所以没有办法被通知改变' pager.numberOfPages'在父虚拟机中。 –

+0

虽然这不是问题。为此,我认为视图模型几乎不需要被通知其他视图模型属性的变化。视图模型属性是状态属性,并且像这样设置自定义属性可用于抽取API背后的特定功能子集。例如,如果您希望收到更新视图的通知,则应该按照以上所做的操作,并在模板中使用它。模板引擎知道如何观察它。 –