问题标签 [computed-properties]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - Swift 中的惰性变量是否计算不止一次?
Swift 中的惰性变量是否计算不止一次?我的印象是他们取代了:
来自 Objective-C 的范式(惰性实例化)。
他们就是这样做的吗?基本上只在应用程序第一次请求变量时调用一次,然后只返回计算的内容?
还是每次都像普通的计算属性一样调用它?
我问的原因是因为我基本上想要一个可以访问其他实例变量的 Swift 计算属性。假设我有一个名为“fullName”的变量,它只是连接firstName
和lastName
. 我将如何在 Swift 中做到这一点?似乎惰性变量是唯一的方法,因为在普通计算变量(非惰性)中我无法访问其他实例变量。
所以基本上:
Swift 中的惰性变量会被多次调用吗?如果是这样,我如何创建一个可以访问实例变量的计算变量?如果不是,如果出于性能原因我只想计算一次变量,我该怎么做?
javascript - Ember.Object 中的多个属性或单个观察者
如果我有一系列依赖于相同属性的属性,那么定义它们的最佳(可维护、最快等)方法是什么?我能想到几个:
A. 每个属性:
B. 一次性设置所有道具的观察者:
C. 直接计算道具:
(C) 绝对看起来是最优雅的,但我想知道:使用三个计算属性与一个观察者相比有什么惩罚吗?(C) 基本上是 A 的简写吗?有什么区别吗?
ember.js - 删除 firstObject 时,Ember 计算属性不更新视图
我有一个项目评论列表,我的模板显示了最新的,带有一个按钮,可以调出一个模式来显示所有评论。在该模式中,您可以单独删除评论,这很有效,并且模式会相应地更新。模板也会更新,直到我删除最后一条记录。
这是我最初的财产声明:
即使我查询了控制器并确认 firstObject 未定义,计算的属性仍然保持其值。
如果我更改计算属性以观看 @each 评论,如下所示:
然后视图会更新,但控制台会输出一个丑陋的错误:
删除最后一条记录后如何更新视图?还是我应该忽略这个错误?
polymer - 手动重新计算“计算属性”
如果我有自定义元素
当我改变name
聚合物时会自动重新计算message
,但是有没有办法在message
不改变的情况下重新计算name
?
javascript - Ember.JS - 无法根据计算属性进行过滤或过滤
我正在尝试使用 filterBy 和条件“isRoot”== true 过滤我的 hasMany-Array async-get 的结果。“isRoot”属性是一个计算属性,似乎 ember 的 filterBy 函数不会等待 promise 解决。这是我的代码:
目录模型
用户模型
我用来过滤目录的语句:
这里有人知道我的问题的解决方案吗?提前谢谢!
更新
我制作了一个 JSBIN,显示了我当前的问题。这里链接JSBIN 链接到我的示例
javascript - 角度绑定到数组中的存在,或者,高性能计算属性
问题
我想知道是否有一种简洁、高效的方法可以将角度视图绑定到数组中特定项目的存在。基本上,我在一页上有两个控制器。控制器 A 可以删除或添加由服务注入的数组中的项目。我希望注入相同服务的控制器 B 在我从控制器 A 删除或添加时更新其视图。
龙虾的问题
假设我正在创建一个龙虾约会网站。我有两种观点,并排:
最热龙虾视图显示海洋中最热龙虾的列表。如果这些龙虾中的任何一个恰好是您的朋友,它的列表项将突出显示,并有一条消息说您是朋友。
龙虾朋友视图与最热门的龙虾视图在同一页面上。如果我从 lobster 好友视图中取消好友关系(即从
lobsterFriend
数组中删除龙虾),最热门的 lobster 视图应相应更新,并停止突出显示未好友的龙虾。
我想要一个适用于大量龙虾的解决方案。
设置
免责声明:此问题中的代码仅用于说明目的。我实际上并没有为龙虾创建约会网站。
我有一个角度服务,我正在注入两个控制器。该服务返回一个对象数组。
lobsterFriendService
,管理龙虾朋友的服务:
LobsterFriendsCtrl
,朋友列表的控制器,注入lobsterFriendService
:
HottestLobsterCtrl
,最热龙虾页面的控制器:
hottestLobsters.html
,视图绑定到HottestLobsterCtrl
:
可能的解决方案
lobsterFriends
在阵列上设置监视。当它更新时,我们可以更新HottestLobsterCtrl
控制器上的一些属性,触发摘要等。我认为这会相当昂贵。- 每当龙虾成为好友或未成为好友时,都会发出一个事件。如果可能的话,这是一条我想避免走下去的路径,因为我已经在那里注入了一个带有实际对象的服务。
- 使用某种可以很好地处理计算属性的帮助库。
- ???请帮忙?
ember.js - ember 中模型中每个项目的 ArrayController 的属性
我有一个具有属性“isChecked”(布尔属性)的数组控制器。在我的控制器中,我想获取“已检查”(我的意思是已选择)的元素的集合。我不确定如何访问模型中控制器的属性。
我的控制器如下:
我将“isChecked”属性链接到每个助手内的复选框,如下所示。
我将显示模型中的所有项目,并带有一个与之关联的复选框。用户可以从中选择几个项目。所以我想要那些东西。
现在我想获取“检查”的元素列表。作为计算属性或在任何操作下。
谢谢你。
ember.js - EmberJS:在组件属性中使用助手
我正在尝试使这个组件模板变甜:
如您所见,冗长使得很难看到最终的链接文本。以下更容易解析:
为了启用这种语法,我认为计算属性会有所帮助,但我不确定如何在我的组件定义中利用format-number
和帮助器。format-relative
那么,我如何在我的组件中添加糖,这样{{format-number model.next.amount format="USD"}}
就变成了这个{{amount}}
?我在正确的轨道上吗?
swift - Swift 中的 Getter 和 Setter
为什么我们需要在下面的 Swift 中使用 setter。
我正在尝试将 'display.text' 转换String
为Double
. 我知道 getter 带回String
value 并将其转换为Double
并将该 value 分配给 variable newValue
。
问题:为什么我们将 display.text 值重新设置回String
使用= "\(newValue)"
如果我们只是将其转换为Double
?