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"));
これは、値ではなく、常に関数自体を返します。
では、この値にアクセスするための「最良の」方法は何でしょうか? 関数を返す代わりに実行するトリックはありますか? または、プロパティを手動で更新できますか (初期値 0 を返しますが、マージンが変更された後に更新されないため、ember によってキャッシュされていると思います)