我对Ember.View中的自定义属性和函数有一个非常简单的问题。我有一个搜索框。如果触摸touchmove,则将向左边距添加10像素。听起来很愚蠢?是的,但它只是一个例子;)
App.SearchboxView = Ember.View.extend({
marginLeftProperty: function(){
return parseInt(this.$().css("margin-left"));
}.property(),
marginLeftFunction: function(){
return parseInt(this.$().css("margin-left"));
},
touchMove: function(e) {
console.log(this.get("marginLeftProperty"));
console.log(this.get("marginLeftFunction"));
old_margin = parseInt(this.$().css("margin-left"));
new_margin = old_margin + 10;
this.$().css("margin-left", new_margin+"px");
}
});
我想通过单独的函数或属性访问边距。因为我不确定我是否尝试过这两种方法。功能和财产。我使用console.log来检查什么效果最好。
console.log(this.get("marginLeftProperty"));
拖动搜索框多次返回“0”,但边距正在变化。
console.log(this.get("marginLeftFunction"));
这一个总是返回函数本身,而不是值。
那么访问此值的“最佳”方式是什么?是否有一个技巧来运行函数而不是返回它?或者我可以手动更新属性(我认为它是由ember缓存的,因为它返回初始值0但在更改边距后不会更新)