gpt4 book ai didi

javascript - 带参数的 Ember 计算属性

转载 作者:数据小太阳 更新时间:2023-10-29 04:06:15 25 4
gpt4 key购买 nike

我想知道是否可以向计算属性添加参数。到目前为止,我尝试的一切都导致了错误,并且在这个问题上一无所获。我想使用我的模型中未包含的值构建 URL。

我正在寻找看起来像这样的东西:

// App.js
App.Image = DS.Model.extend({
image_path_sh: DS.attr(), // image.jpg
image_size_nm: DS.attr(), // 234234
image_alt_sh: DS.attr(), // My image
image_abs_url: function(width, height) {
return "http://localhost/images/" + this.get('image_path_sh') + "/" + width "x" + height
}.property('image_path_sh')
});

// index.html
// I know this doesn't work, but I'd like to have something that easy to use
{{#each image}}
<img src="{{image_abs_url 250 250}}" alt="{{image_alt_sh}}" />
{{/each}}

我的服务器将返回调整大小的图像。我不想将其放入我的数据库中,因为它们不是固定值。

最佳答案

计算属性不应该依赖于参数,它打破了缓存范式,这正是帮助器和方法的用途。

v3.2 https://guides.emberjs.com/release/templates/writing-helpers/

import { helper } from '@ember/component/helper';

export function formatCurrency([value, ...rest]) {
let dollars = Math.floor(value / 100);
let cents = value % 100;
let sign = '$';

if (cents.toString().length === 1) { cents = '0' + cents; }
return `${sign}${dollars}.${cents}`;
}

export default helper(formatCurrency);

Ember 的全局非导入版本

Ember.Handlebars.helper('img', function(prop, height, width, options) {
return new Handlebars.SafeString('<div style="height:' + height +'px;width:'+ width +'px;background-color:' + prop + '">' + prop + '</div>');
});

http://emberjs.jsbin.com/IgUFaTAk/1/edit

关于javascript - 带参数的 Ember 计算属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20499917/

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