使用jquery tmpl时,在原型方法中访问自定义obj属性的差异

| 我不确定我的方法是否已关闭,或者我是否只需要一种优雅的方法来解决自己在做什么。 我有一个自定义Javascript对象,在此示例中称为Dude。 Dude有1个属性称为“ height”,在其原型上定义了1个方法称为“ reallyTall \”
var Dude = function(props) {
    this.height = \"tall\";
};
Dude.prototype.reallyTall = function() {
    return this.height + \" as heck\";
};
我正在创建一个Dudes数组(在此示例中仅包含一个项目),并且希望使用jquery.tmpl()接收我的Dudes并将它们以某种方式附加到HTML的div中。 (出于此简单示例的目的,不缓存模板)
var guy = new Dude();
jQuery.tmpl(\"<li>${reallyTall}</li>\", guy).appendTo(\'#foo\');
其中,#foo是HTML中的空
    我想让我的Dude对象足够“通用”,这样,如果有人不想将它们与jquery.tmpl一起使用,他们就不必....意思是,有人可能想要实现某些目标与上述类似,但执行以下操作:
    jQuery(\"#foo\").append(\'<li>\' + guy.reallyTall() + \'</li>\'));
    
    这就是我的问题出现的地方-它的值在trueTall方法中。 当不使用tmpl()时,我可以通过简单地执行Dude \的height属性
    this.height
    
    但是当使用tmpl()时,我必须像这样访问它:
    this.data.height
    
    我可以在realTall方法中执行以下操作:
    this.height || this.data.height
    
    但这似乎很肮脏。 我希望有人对我的问题有更好的解决方案,或者可以指出我是否在这里错误地使用了jquery.tmpl()。 这是我的例子的小提琴:     http://jsfiddle.net/FTF5M/2/     
已邀请:
尝试在模板中使用
${$data.reallyTall()}
。 http://jsfiddle.net/rniemeyer/9CtsV/     

要回复问题请先登录注册