gpt4 book ai didi

javascript - Ember.js:在服务的 Handlebars 中使用计算属性

转载 作者:行者123 更新时间:2023-12-02 14:44:13 24 4
gpt4 key购买 nike

所以我的 component.js 中有这个计算属性:contexts: Ember.compulated.oneWay('myService.contexts'),

我可以从另一个操作中获取内容

 openHelp(){
console.log(this.get('contexts'))
alert(this.get('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}} ,它会在 Handlebars 中输出。但是,如果我将 foo 设为一个计算属性,从中获取 [ 'foo','bar'] 并执行 {{foo}} 我得到什么都没有。

最佳答案

解决方案如下:https://ember-twiddle.com/e9c2ef05e27013a389e0b2bfdaec3d40?openFiles=services.my-service.js%2Ctemplates.components.my-component-help.hbs

有两个问题:

  1. contexts 是一个数组。当您 console.logalert 时,某些浏览器内部的这些方法会为您提供 JSON.stringify 对象,以方便您使用。 Ember 不会这么做。您需要自己格式化数组,或者像我一样,对其进行 each 格式化。出于调试目的,请随意使用 log 帮助程序。

  2. 数组的计算属性正在通过 Ember 的方法(例如 pushObjectremoveObject)监视数组突变。仅使用 pushsplice 不会更新计算属性。

关于javascript - Ember.js:在服务的 Handlebars 中使用计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36751111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com