问题标签 [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 投票
1 回答
2860 浏览

javascript - 数组上的 Ember 计算属性

我是 Ember 新手,所以如果我遗漏了一些明显的东西,请原谅我(我已经花时间在谷歌上搜索这个问题,但仍然找不到解决方案),但在我看来,Ember 计算的属性没有按照记录的那样工作/ 用于数组属性,如长度。

我正在尝试建立自己的队列:

这个类不完整,但我想开始在模板中显示队列内容以帮助调试,但我无法让它工作。这是我的控制器和模板:

问题是,在<h2>Queue Length: '{{queueLength}}'</h2>我将项目添加到队列之前,队列长度始终是未定义的。但这不是真的,队列有一个空数组,长度为 0。使用$E来自 EmberInspector 的仪表板控制器我可以看到,$E.get('processingQueue.length')并且$E.get('queueLength')两者都是undefined.

奇怪的是,只要我将项目添加到队列中,队列长度就会被定义,1, 2, 3, ...并在我添加队列项目时保持和同步模板。所以第一个$E.get('processingQueue').enqueue('foo')自动更新模板以显示队列长度为“0”,然后是“1”,依此类推。

为什么在我将任何项目排入队列之前它是未定义的?我尝试根据Unconsumed Computed Properties Do No Trigger Observers在所有地方添加获取,但这似乎没有帮助。

有任何想法吗?我完全有可能在这里误解了关于计算属性的一些东西,但我不明白是什么以及为什么......我已经尝试volatile(), [], @each了所有这些,但我也无法让它有所作为。有什么不对...

任何帮助将不胜感激,我愿意添加到 Wiki,写一篇博客文章,也许将我的队列作为开源发布,以示感谢。:-)

谢谢!再次感谢您让 Ember 如此出色!

0 投票
2 回答
120 浏览

c# - 具有 Lightswitch 计算属性的 Linq to SQL 查询过滤器

借助我在上一个问题中收到的帮助/建议,我设法将问题缩小到计算属性。

这是失败的查询过滤:

query = query.Where(a => a.collection.Any(b => b.Name.StartsWith(c)));

那里的一切似乎都工作正常,但Name会导致查询失败。Name是一个计算属性,b当我用标准属性替换它时,查询就起作用了。

我不明白这在 sql 中意味着什么,所以我不知道如何修复/替换它,所以我可以按该属性进行过滤。如果有人可以解释该查询背后出了什么问题,我们将不胜感激。

0 投票
2 回答
93031 浏览

vue-component - 观察计算属性

我有一个具有以下哈希的组件

我应该关注isUserID还是userId改变?你能看计算属性吗?

0 投票
4 回答
793 浏览

ios - 计算属性:get 和 set 的不同类型

我想将浮点范围映射到字符串。具体来说,我想转换风的度数方向,例如,在具有基本方向的相应字符串中:220 -> SW

Float可以使用自定义声明创建声明类型的计算属性,get以返回相应的String? 这样,我将其写为,Float但我将其读为String.

就像是:

如果不是,我有什么可能产生相同的行为?

0 投票
1 回答
908 浏览

javascript - 在 v-if 绑定时无法访问 getter 中的数据,但在 v-for 渲染时可以访问

我有一个基于这样的计算属性呈现的表。请注意每一行如何根据其内容获取其样式。这很管用。

我还想在表格之外添加一个集体信息,所以我设置了以下有条件的消息传递。

第一个按预期工作。但是,第二个给我一个错误,无法读取 undefined 的属性“列”,这看起来很疯狂,因为我可以清楚地看到屏幕上的数据并且长度属性绝对不为零。

我尝试使用调试器命令在那里四处寻找,但似乎没有在代码的那部分调用。我知道代码会被执行,因为将return false更改为return true确实会产生差异。调试器似乎可以在代码的其他地方工作。诡异的...

我试图将值存储到全局变量中,如下所示。从控制台窗口插入该变量会产生我期望的值。我不明白那里发生了什么,但这绝对是一些黑魔法。

  1. 我可以做些什么来获得计算属性中的值?
  2. 为什么它不做一个理智的人所期望的?
  3. 如何在那里调用调试器?

编辑

商店有以下吸气剂。

它被分配给以下对象。数据中的每一行都有一个 ID 和一个容器

我想绑定到两个计算属性,如果表中的行数为 5(即完成),并且如果最后一行的elapsed值为负(即woopsie),这两个计算属性将为真。这就是为什么我要宣布这两个(并且只有第一个在工作)。

0 投票
3 回答
1199 浏览

ios - 快速更改计算属性

我将 NSFetchedResultsController 作为惰性计算属性。基于变量,创建排序描述符。这是我的代码:

当 sortOption 变量的值发生更改时,我想重新计算“inspirationsResults”变量并相应地更改排序描述符。如何实现?

0 投票
3 回答
502 浏览

ios - 如果存在则计算变量返回 self,如果 nil 则返回新实例

如果我的ScoreModel应用有一个需要传递给下一个的UIViewController. 它可能不存在,因此不会传递给这个新的UIViewController. 如果是这种情况,我想让它创建一个模型的新实例。这不起作用(无休止的循环),但它会给出我正在尝试创建的想法:

如何检查当前版本是否scoreModel == nil没有进入循环?

0 投票
1 回答
3046 浏览

ember.js - Ember 控制器中的计算属性

我是 Ember 的初学者。该应用程序是一个睡眠跟踪器。我现在正在尝试构建的是过去 N 天内平均睡眠和小睡的小时数。

为了计算平均值,我相信我想在控制器上添加一个计算属性。我还没有模型,因为这个应用程序太原始了。

这是我当前的代码:

我的format-duration辅助函数执行一个console.log接收到的值。当显示平均值时,format-duration接收一个函数而不是一个值。

我也没有在控制器中看到console.log调用。

在 Handlebars 模板中,我尝试使用:

但这会返回语法错误:

作为另一项测试,我将控制器更改为使用计算属性:

这一次,format-duration它说它收到 0,这向我表明,模板至少与控制器正确对话。

在哪里可以找到过滤数组的计算属性示例?我必须在上面的代码中更改什么来计算整数的总和?

0 投票
4 回答
181159 浏览

yaml - 在 yaml 中使用占位符

有没有办法像这样在 yaml 中使用占位符:

0 投票
1 回答
4230 浏览

javascript - Vuejs2:如何在数组更改时重新渲染数组计算属性

我有一个名为 List 的数组,并为他创建了计算属性 computedList。当我更新数组的值时,它没有显示在 html 中,但在控制台中我看到 thar 数组已更新。

将计算属性用于数组的最佳方法是什么?

也许存在触发重新渲染计算属性的方法?