问题标签 [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 - Vue.js 在计算属性中设置值
我有 3 个这样的输入:
当用户为输入输入值时,我想获取用户输入的值以处理值并更新新值。我正在使用计算属性来处理值:
问题是我如何知道用户输入了哪个输入并设置了新值?
javascript - Ember.js:在服务的把手中使用计算属性
所以我在我的内部有这个计算属性component.js
:contexts: Ember.computed.oneWay('myService.contexts'),
而且我能够从另一个动作中获取内容
但是当我尝试使用 Handlebars ( {{contexts}}
) 中的计算属性时,它只是空白。
我为这个问题创建了一个 Ember Twiddle:https ://ember-twiddle.com/38de64d58dcf3298df6d4176f15cbc0e?openFiles=components.my-component-help.js%2Ctemplates.components.my-component-help.hbs
如果我有一个数组foo: [ 'foo','bar']
并且我做 {{foo}} 它在把手中输出。但是,如果我创建foo
了一个计算属性,[ 'foo','bar']
那么{{foo}}
我什么也得不到。
swift - Swift 计算属性模板?
有没有办法模板计算属性以避免一遍又一遍地重复相同的代码?例如,现在我有一个类,其代码块如下所示:
这里有一个明显的模式,所有重复的代码只会混淆正在发生的事情,并在我剪切/粘贴/编辑/失败时导致错误。有没有一种方法可以捕获这种模式,然后使用以下内容定义我的属性:
?
arrays - 无法在控制器中的模型哈希上调用 forEach
我有一条名为的路线tickets
,其模型设置如下
模板设法在一个块中循环这些model.tickets
就好了{{#each}}
在我的控制器中,我试图设置一个groupBy
计算,但在我的计算中,我得到了错误
ember.js - 将类绑定到动态服务属性
我有一个我称之为state
处理加载状态的服务,我可以将它扩展到我将来可能想要的任何东西。我需要这项服务,这样我就可以让不同的组件以某种方式相互通信,这样他们就可以知道另一个组件是否正在加载或做某事。
无论如何,我有这个按钮,我在不同的地方使用它只是发送一个动作,然后变成一个微调器,直到那个动作完成。
他们目前加载动画的工作方式是classNameBindings: ['state.working'],
但是,如果我现在在屏幕上同时有两个这样的按钮,我称this.state.set('working',true);
所有按钮现在都在旋转。
我宁愿将一个属性名称传递给按钮组件,告诉它在state
服务上观察什么属性以确定它是否应该添加working
类
我只是在弄清楚如何在组件中进行这项工作时遇到了一些麻烦。
如何让类绑定监视将传递给组件的动态属性名称,loadingPropertyName
这样每个按钮组件都可以监视其working
类绑定的不同属性。
ember.js - EmberJS、助手和 ComputedProperty
我有一个Helper,它接收一个元素数组并根据第一个数组返回一些其他数组。
Helper的实现可以是这样的:
Helper工作正常,但如果原始myString
Array 发生更改,则更改不会影响已呈现的列表。
如何结合ComputedProperty的行为和Helper的结果?
ember.js - 绑定到动态路段
我正在尝试将计算属性(或通过观察者更改)绑定到路由iso
中的动态段。locale
我拥有的路由器表示为:
这会导致这样的 URL:
我想知道的是,en-us
无论您在哪条路线上,是否有任何方法可以以编程方式更改 URL 的一部分?到目前为止,我只运行 a 的问题transitionTo()
是我无法知道当前位置的子路线是什么。
基本上,我需要一种将en-us
段绑定到计算属性的方法,我可以在 URL 更改时自动更新它。
提前致谢!
编辑:
为了进一步澄清,我正在寻找一种在属性更改时更新 URL 段的方法。像这样的东西:
- 导航到:http://localhost:4200/en-us/products
- 服务电话
this.set('locale', 'fr-ca')
- 路由检测更新的
service.locale
属性 - URL 更新为:http://localhost:4200/fr-ca/products
ios - 如何在 Swift 中对计算的(仅获取)属性进行单元测试?
我在 NSURL 上编写了以下类扩展:
它包含一个计算的(仅获取)属性:
当我尝试在我的单元测试目标中测试这个计算属性时,编译器会抛出错误Ambiguous use of 'linkComponents'
并建议一些“候选人”。
这似乎是一个访问控制问题。我的测试文件中的导入语句有@testable
注释。我的所有其他测试(对于非计算属性)都可以编译,无需我指定任何超出默认值的访问控制internal
。如果我将这个特定的计算属性转换为一个函数,那么测试目标就会编译 a-ok。
是否可以在 Swift 中对计算属性进行单元测试?如果是这样,怎么做?不用说(1)我不想将此计算属性转换为函数,并且(2)我不想添加public
到所有内容中。
编辑 1
编译器建议的“候选人”实际上只是一个“候选人”,它是我的计算属性。即编译器正确识别计算属性,但它不会正式将其识别为唯一有效的候选者。
编辑 2
实际上,将其转换为函数也不起作用。鉴于我正在从我编写的类的扩展中测试函数。也许这与 Foundation 类的扩展中的测试功能有关(如本例中的 NSURL)。
编辑 3
经过进一步调查,看起来这是由于计算属性的返回类型 ( LinkComponents
) 。linkComponents
编译器不喜欢这样。如果我将返回类型更改为String
它就可以了。如果我LinkComponents
在测试用例本身或在计算属性的主体中引用类型的对象,它也可以。只有当计算属性的类型是LinkComponents
编译器抱怨时。这里是LinkComponents
:
swift - 快速计算的属性 getter 可以改变结构吗?
我有一个包装 a 的结构var data:[T]
,它还提供有关内部数组的一些统计信息。一个统计数据是最大值,这可能是一项昂贵的操作,因为它需要搜索每个元素以确定最大值——所以我想缓存最大值并仅在需要时重新计算它:
这似乎作为一种方法工作得很好,但我不知道如何做与计算属性相同的事情。
导致抱怨需要将访问器标记为“变异”,因为 getMax() 正在变异(实际上我会将 getMax 代码放入属性访问器中,但这里不重写代码更容易)。
Xcode 建议我这样重写代码:
然后标记另一个问题,Xcode 建议在变异之前放置一个分号,这导致建议在变异之后放置另一个分号,然后在变异之后再放置一个分号,很明显编译器甚至没有试图提供帮助,只是有一个分号迷信。
有没有办法编写一个允许缓存值的计算属性,还是我坚持把它写成一种方法?
javascript - EmberJS 基于数组的计算属性不起作用
我有一个 EmberJS 控制器,它具有以下计算属性:
它设置了我在模板中使用的布尔标志,以有条件地显示 html。
我还有一个按钮,单击该按钮时,将获取表单数据并通过调用 addRequirement 操作将元素推送到 selectedRequirements 数组中
如果我将 addRequirement 函数更改为此,则 hasSelectedRequirements 计算属性的函数处理程序将按预期运行,并且 console.log 语句有效:
似乎 Ember 的计算属性依赖于观察到的数组是一个完全不同的数组?
问题是计算属性无法识别元素已添加到 selectedRequirements 数组中,并且计算属性函数永远不会被调用(console.log 语句永远不会运行)。为什么计算属性无法识别 selectedRequirements 数组已被修改,如何修复计算属性代码?