此处的两个功能都返回' undefined'。我无法弄清楚问题是什么......看起来很直接?
在控制器中,我设置了一些属性,向用户显示一个空的文本字段,以确保他们输入自己的数据。
Amber.ProductController = Ember.ObjectController.extend ({
quantity_property: "",
location_property: "",
employee_name_property: "",
//quantitySubtract: function() {
//return this.get('quantity') -= this.get('quantity_property');
//}.property('quantity', 'quantity_property')
quantitySubtract: Ember.computed('quantity', 'quantity_property', function() {
return this.get('quantity') - this.get('quantity_property');
});
});
在路线中,正在设置employeeName和location ...
Amber.ProductsUpdateRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('product', params.product_id);
},
//This defines the actions that we want to expose to the template
actions: {
update: function() {
var product = this.get('currentModel');
var self = this; //ensures access to the transitionTo method inside the success (Promises) function
/* The first parameter to 'then' is the success handler where it transitions
to the list of products, and the second parameter is our failure handler:
A function that does nothing. */
product.set('employeeName', this.get('controller.employee_name_property'))
product.set('location', this.get('controller.location_property'))
product.set('quantity', this.get('controller.quantitySubtract()'))
product.save().then(
function() { self.transitionTo('products') },
function() { }
);
}
}
});
车把没什么特别的
<h1>Produkt Forbrug</h1>
<form {{action "update" on="submit"}}>
...
<div>
<label>
Antal<br>
{{input type="text" value=quantity_property}}
</label>
{{#each error in errors.quantity}}
<p class="error">{{error.message}}</p>
{{/each}}
</div>
<button type="update">Save</button>
</form>
答案 0 :(得分:0)
摆脱()
product.set('quantity', this.get('controller.quantitySubtract'))
这种方式很好:
quantitySubtract: function() {
return this.get('quantity') - this.get('quantity_property');
}.property('quantity', 'quantity_property')
看到你的路线,该控制器不适用于该路线,它只是使用通用的Ember.ObjectController
。
Amber.ProductController
会转到Amber.ProductRoute
Amber.ProductUpdateController
会转到Amber.ProductUpdateRoute
如果你想为两条路线重复使用控制器,只需像这样扩展产品控制器。
Amber.ProductController = Ember.ObjectController.extend ({
quantity_property: "",
location_property: "",
employee_name_property: "",
quantitySubtract: function() {
return this.get('quantity') - this.get('quantity_property');
}.property('quantity', 'quantity_property')
});
Amber.ProductUpdateController = Amber.ProductController.extend();
答案 1 :(得分:0)
我最终跳过了这个功能,而是这样做了:
product.set('quantity',
this.get('controller.quantity') - this.get('controller.quantity_property'))
我仍然不明白为什么我不能使用该功能..我也试图重命名控制器..但这不是问题..正如之前提到的其他两个值提取到控制器...
无论如何,谢谢你试图帮助我!