gpt4 book ai didi

ember.js - 我应该如何获得这个输入字段的值?

转载 作者:行者123 更新时间:2023-12-02 06:08:50 24 4
gpt4 key购买 nike

我在 {{input value=(cents-to-dollars model.amountInCents)}} 使用子表达式.它使用自定义助手将值从美分转换为美元。我的 API 返回美分。

然而在 Controller save行动,console.log(this.get('model.amountInCents'));返回 undefined .我错过了什么吗?也许 namevalueBinding在输入助手中?

如果我删除子表达式。 console.log(this.get('model.amountInCents'));输出很好。

// Routes
import Ember from 'ember';

export default Ember.Route.extend({
model: function(params) {
return this.store.find('product', params.product_id);
}
});

// Controller
export default Ember.Controller.extend({
actions: {
save: function() {
console.log(this.get('model.amountInCents')); // returns undefined
var _this = this;
var dollars = this.get('model.amountInCents');
var amountInCents = dollars / 100;

this.get('model').set('amountInCents', amountInCents);

this.get('model').save().then(function(product){
_this.transitionToRoute('admin.products.show', product);
}, function() {
// Need this promise, so we can render errors, if any, in the form
});

return false;
},
cancel: function() {
this.transitionToRoute('products.show', this.get('model'));
}
}
});

// Template
<form {{action "save" on="submit"}}>
<p>
<label>Name:
{{input value=model.name}}
</label>
</p>

<p>
<label>Amount in cents:
{{input value=(cents-to-dollars model.amountInCents)}}
</label>
</p>

<input type="submit" value="Save"/>
<button {{action "cancel"}}>Cancel</button>
</form>

最佳答案

首先,(至少在版本 1.9.1 中)您所提议的内容并没有真正起作用(参见 here - 值出现在输入字段之外)。我认为真正的问题是您没有绑定(bind)到属性,而是绑定(bind)到从帮助程序返回的字符串(这不是您想要的)。

所以,你可以做什么?

您可以设置dollars计算属性如下:

App.IndexController = Ember.ObjectController.extend({
dollars: function(key, value){
if (arguments.length > 1) {
var dollars = value;
this.set('amountInCents', parseInt(dollars) * 100);
}

return this.get('amountInCents') / 100;
}.property('model.amountInCents')
});

完整的工作示例 here

关于ember.js - 我应该如何获得这个输入字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28763043/

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