问题标签 [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.
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 如此出色!
c# - 具有 Lightswitch 计算属性的 Linq to SQL 查询过滤器
借助我在上一个问题中收到的帮助/建议,我设法将问题缩小到计算属性。
这是失败的查询过滤:
query = query.Where(a => a.collection.Any(b => b.Name.StartsWith(c)));
那里的一切似乎都工作正常,但Name
会导致查询失败。Name
是一个计算属性,b
当我用标准属性替换它时,查询就起作用了。
我不明白这在 sql 中意味着什么,所以我不知道如何修复/替换它,所以我可以按该属性进行过滤。如果有人可以解释该查询背后出了什么问题,我们将不胜感激。
vue-component - 观察计算属性
我有一个具有以下哈希的组件
我应该关注isUserID
还是userId
改变?你能看计算属性吗?
ios - 计算属性:get 和 set 的不同类型
我想将浮点范围映射到字符串。具体来说,我想转换风的度数方向,例如,在具有基本方向的相应字符串中:220 -> SW
Float
可以使用自定义声明创建声明类型的计算属性,get
以返回相应的String
? 这样,我将其写为,Float
但我将其读为String
.
就像是:
如果不是,我有什么可能产生相同的行为?
javascript - 在 v-if 绑定时无法访问 getter 中的数据,但在 v-for 渲染时可以访问
我有一个基于这样的计算属性呈现的表。请注意每一行如何根据其内容获取其样式。这很管用。
我还想在表格之外添加一个集体信息,所以我设置了以下有条件的消息传递。
第一个按预期工作。但是,第二个给我一个错误,无法读取 undefined 的属性“列”,这看起来很疯狂,因为我可以清楚地看到屏幕上的数据并且长度属性绝对不为零。
我尝试使用调试器命令在那里四处寻找,但似乎没有在代码的那部分调用。我知道代码会被执行,因为将return false更改为return true确实会产生差异。调试器似乎可以在代码的其他地方工作。诡异的...
我试图将值存储到全局变量中,如下所示。从控制台窗口插入该变量会产生我期望的值。我不明白那里发生了什么,但这绝对是一些黑魔法。
- 我可以做些什么来获得计算属性中的值?
- 为什么它不做一个理智的人所期望的?
- 如何在那里调用调试器?
编辑
商店有以下吸气剂。
它被分配给以下对象。数据中的每一行都有一个 ID 和一个容器列。
我想绑定到两个计算属性,如果表中的行数为 5(即完成),并且如果最后一行的elapsed值为负(即woopsie),这两个计算属性将为真。这就是为什么我要宣布这两个(并且只有第一个在工作)。
ios - 快速更改计算属性
我将 NSFetchedResultsController 作为惰性计算属性。基于变量,创建排序描述符。这是我的代码:
当 sortOption 变量的值发生更改时,我想重新计算“inspirationsResults”变量并相应地更改排序描述符。如何实现?
ios - 如果存在则计算变量返回 self,如果 nil 则返回新实例
如果我的ScoreModel
应用有一个需要传递给下一个的UIViewController
. 它可能不存在,因此不会传递给这个新的UIViewController
. 如果是这种情况,我想让它创建一个模型的新实例。这不起作用(无休止的循环),但它会给出我正在尝试创建的想法:
如何检查当前版本是否scoreModel == nil
没有进入循环?
ember.js - Ember 控制器中的计算属性
我是 Ember 的初学者。该应用程序是一个睡眠跟踪器。我现在正在尝试构建的是过去 N 天内平均睡眠和小睡的小时数。
为了计算平均值,我相信我想在控制器上添加一个计算属性。我还没有模型,因为这个应用程序太原始了。
这是我当前的代码:
我的format-duration
辅助函数执行一个console.log
接收到的值。当显示平均值时,format-duration
接收一个函数而不是一个值。
我也没有在控制器中看到console.log
调用。
在 Handlebars 模板中,我尝试使用:
但这会返回语法错误:
作为另一项测试,我将控制器更改为使用计算属性:
这一次,format-duration
它说它收到 0,这向我表明,模板至少与控制器正确对话。
在哪里可以找到过滤数组的计算属性示例?我必须在上面的代码中更改什么来计算整数的总和?
yaml - 在 yaml 中使用占位符
有没有办法像这样在 yaml 中使用占位符:
javascript - Vuejs2:如何在数组更改时重新渲染数组计算属性
我有一个名为 List 的数组,并为他创建了计算属性 computedList。当我更新数组的值时,它没有显示在 html 中,但在控制台中我看到 thar 数组已更新。
将计算属性用于数组的最佳方法是什么?
也许存在触发重新渲染计算属性的方法?