我正在阅读set()
方法的Ember.js API reference,但我不理解其中的一段。
计算属性
如果你试图在一个定义了计算属性处理程序的键上设置一个值(参见get()方法的例子),那么set()将调用该方法,传递值和键,而不是简单地改变值本身。当您需要实现由一个或多个成员属性组成的属性时,这很有用。
我理解set()
是如何独立工作的,但是设置计算属性(函数)仍然没有点击,即使在阅读了这一段之后。
有没有人可以给予额外的解释或例子?
我正在阅读set()
方法的Ember.js API reference,但我不理解其中的一段。
计算属性
如果你试图在一个定义了计算属性处理程序的键上设置一个值(参见get()方法的例子),那么set()将调用该方法,传递值和键,而不是简单地改变值本身。当您需要实现由一个或多个成员属性组成的属性时,这很有用。
我理解set()
是如何独立工作的,但是设置计算属性(函数)仍然没有点击,即使在阅读了这一段之后。
有没有人可以给予额外的解释或例子?
2条答案
按热度按时间bxpogfeg1#
您可以阅读https://guides.emberjs.com/v2.14.0/object-model/computed-properties/#toc_setting-computed-properties以获得更好的理解。
在这里,我只是试图解释同样的事情。
在上面,
如果我们说,
this.set('fullNameCP','Yehuda Katz')
之后,它将被视为正常属性,它将不会被视为计算属性。您不应该手动将fullNameCP
设置为新值。如果你想这样做,那么你需要用Getter和Setter定义Computed属性,比如fullNameCPwithGetSet
。如果我们说,
this.set('fullNameCPwithGetSet','Yehuda Katz')
,那么它将通过传递值也就是Yehuda Katz
来调用计算属性fullNameCPwithGetSet
的set
方法,以便我们可以为依赖键设置确切的值。8qgya5xd2#
在某些情况下,
a.set(b, c)
不会触发计算值。所以我们可以使用set(a, b, c)
,a = yourObject,b =要修改的属性,c =值