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"));

这个总是返回函数本身,而不是值。

那么访问这个值的“最佳”方式是什么?有没有一个技巧来运行一个函数而不是返回它?或者我可以手动更新属性(我认为它是由ember缓存的,因为它返回初始值0但在margin更改后没有更新)

4

0 回答 0