关于 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但在margin更改后没有更新)