2

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 によってキャッシュされていると思います)

4

0 に答える 0