今天早些时候,我发布了this question,这很快得到了我的满意。递归地用变量的值替换占位符文本
自从新的需求的时候已经到了光,我现在需要用它来代替一个变量占位符的价值recursivly
这里是我的代码的例子,因为它目前为。完整的插件可以在this Pastebin -
$.widget('custom.contents', {
options : {
singleID : 'content-{index}',
linkID : 'link_to_{singleID}'
}, // options
_create : function(){
console.log(this._getOption(25, 'linkID'));
}, // _create
_getOption : function(index, option){
var t = this; // The object
var optionValue = this.options[option].replace(/{(.+?)}/g, function(_, name){
return name === 'index' ? index : t.options[name];
});
return optionValue;
} // _getOption
});
如果我包括console.log(this._getOption(25, 'linkID'));
产值将link_to_foobar-{index}
。
则返回该值之前,我想递归运行_getOption()
功能,保证内{}
封闭所有值被替换。
我该如何做到这一点?
你可以添加现场演示。 – Tushar
当函数被调用为'_getOption()'时,函数内部的this就是'window'对象。 – Tushar
@Tushar我认为我们可以放心地假设'options'和'_getOption'函数都在同一个对象中;} – Jamiec