问题标签 [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.

0 投票
4 回答
9233 浏览

swift - Swift 中的惰性变量是否计算不止一次?

Swift 中的惰性变量是否计算不止一次?我的印象是他们取代了:

来自 Objective-C 的范式(惰性实例化)。

他们就是这样做的吗?基本上只在应用程序第一次请求变量时调用一次,然后只返回计算的内容?

还是每次都像普通的计算属性一样调用它?

我问的原因是因为我基本上想要一个可以访问其他实例变量的 Swift 计算属性。假设我有一个名为“fullName”的变量,它只是连接firstNamelastName. 我将如何在 Swift 中做到这一点?似乎惰性变量是唯一的方法,因为在普通计算变量(非惰性)中我无法访问其他实例变量。

所以基本上:

Swift 中的惰性变量会被多次调用吗?如果是这样,我如何创建一个可以访问实例变量的计算变量?如果不是,如果出于性能原因我只想计算一次变量,我该怎么做?

0 投票
1 回答
185 浏览

javascript - Ember.Object 中的多个属性或单个观察者

如果我有一系列依赖于相同属性的属性,那么定义它们的最佳(可维护、最快等)方法是什么?我能想到几个:

A. 每个属性:

B. 一次性设置所有道具的观察者:

C. 直接计算道具:

(C) 绝对看起来是最优雅的,但我想知道:使用三个计算属性与一个观察者相比有什么惩罚吗?(C) 基本上是 A 的简写吗?有什么区别吗?

0 投票
1 回答
259 浏览

ember.js - 删除 firstObject 时,Ember 计算属性不更新视图

我有一个项目评论列表,我的模板显示了最新的,带有一个按钮,可以调出一个模式来显示所有评论。在该模式中,您可以单独删除评论,这很有效,并且模式会相应地更新。模板也会更新,直到我删除最后一条记录。

这是我最初的财产声明:

即使我查询了控制器并确认 firstObject 未定义,计算的属性仍然保持其值。

如果我更改计算属性以观看 @each 评论,如下所示:

然后视图更新,但控制台会输出一个丑陋的错误:

删除最后一条记录后如何更新视图?还是我应该忽略这个错误?

0 投票
1 回答
1891 浏览

polymer - 手动重新计算“计算属性”

如果我有自定义元素

当我改变name聚合物时会自动重新计算message,但是有没有办法在message不改变的情况下重新计算name

0 投票
1 回答
1614 浏览

javascript - Ember.JS - 无法根据计算属性进行过滤或过滤

我正在尝试使用 filterBy 和条件“isRoot”== true 过滤我的 hasMany-Array async-get 的结果。“isRoot”属性是一个计算属性,似乎 ember 的 filterBy 函数不会等待 promise 解决。这是我的代码:

目录模型

用户模型

我用来过滤目录的语句:

这里有人知道我的问题的解决方案吗?提前谢谢!

更新

我制作了一个 JSBIN,显示了我当前的问题。这里链接JSBIN 链接到我的示例

0 投票
1 回答
114 浏览

javascript - 角度绑定到数组中的存在,或者,高性能计算属性

问题

我想知道是否有一种简洁、高效的方法可以将角度视图绑定到数组中特定项目的存在。基本上,我在一页上有两个控制器。控制器 A 可以删除或添加由服务注入的数组中的项目。我希望注入相同服务的控制器 B 在我从控制器 A 删除或添加时更新其视图。

龙虾的问题

假设我正在创建一个龙虾约会网站。我有两种观点,并排:

  • 最热龙虾视图显示海洋中最热龙虾的列表。如果这些龙虾中的任何一个恰好是您的朋友,它的列表项将突出显示,并有一条消息说您是朋友。

  • 龙虾朋友视图与最热门的龙虾视图在同一页面上。如果我从 lobster 好友视图中取消好友关系(即从lobsterFriend数组中删除龙虾),最热门的 lobster 视图应相应更新,并停止突出显示未好友的龙虾。

我想要一个适用于大量龙虾的解决方案。

设置

免责声明:此问题中的代码仅用于说明目的。我实际上并没有为龙虾创建约会网站。

我有一个角度服务,我正在注入两个控制器。该服务返回一个对象数组。

lobsterFriendService,管理龙虾朋友的服务:


LobsterFriendsCtrl,朋友列表的控制器,注入lobsterFriendService


HottestLobsterCtrl,最热龙虾页面的控制器:


hottestLobsters.html,视图绑定到HottestLobsterCtrl

可能的解决方案

  1. lobsterFriends在阵列上设置监视。当它更新时,我们可以更新HottestLobsterCtrl控制器上的一些属性,触发摘要等。我认为这会相当昂贵。
  2. 每当龙虾成为好友或未成为好友时,都会发出一个事件。如果可能的话,这是一条我想避免走下去的路径,因为我已经在那里注入了一个带有实际对象的服务。
  3. 使用某种可以很好地处理计算属性的帮助库。
  4. ???请帮忙?
0 投票
1 回答
937 浏览

ember.js - ember 中模型中每个项目的 ArrayController 的属性

我有一个具有属性“isChecked”(布尔属性)的数组控制器。在我的控制器中,我想获取“已检查”(我的意思是已选择)的元素的集合。我不确定如何访问模型中控制器的属性。

我的控制器如下:

我将“isChecked”属性链接到每个助手内的复选框,如下所示。

我将显示模型中的所有项目,并带有一个与之关联的复选框。用户可以从中选择几个项目。所以我想要那些东西。

在此处输入图像描述

现在我想获取“检查”的元素列表。作为计算属性或在任何操作下。

谢谢你。

0 投票
12 回答
212167 浏览

javascript - 具有动态键名的 Reactjs setState()?

编辑:这是重复的,请参见此处

在设置状态时,我找不到任何使用动态键名的示例。这就是我想要做的:

其中 event.target.id 用作要更新的状态键。这在 React 中是不可能的吗?

0 投票
0 回答
434 浏览

ember.js - EmberJS:在组件属性中使用助手

我正在尝试使这个组件模板变甜:

如您所见,冗长使得很难看到最终的链接文本。以下更容易解析:

为了启用这种语法,我认为计算属性会有所帮助,但我不确定如何在我的组件定义中利用format-number和帮助器。format-relative

那么,我如何在我的组件中添加糖,这样{{format-number model.next.amount format="USD"}}就变成了这个{{amount}}?我在正确的轨道上吗?

0 投票
2 回答
2030 浏览

swift - Swift 中的 Getter 和 Setter

为什么我们需要在下面的 Swift 中使用 setter。

我正在尝试将 'display.text' 转换StringDouble. 我知道 getter 带回Stringvalue 并将其转换为Double并将该 value 分配给 variable newValue

问题:为什么我们将 display.text 值重新设置回String使用= "\(newValue)"如果我们只是将其转换为Double