JavaScript文件中的HTML模板。。。我做错了什么?
我试图实现的是将需要动态生成的所有内容的HTML模板存储在单独的js文件中(而不是在页面中呈现)JavaScript文件中的HTML模板。。。我做错了什么?,javascript,jquery,jquery-templates,Javascript,Jquery,Jquery Templates,我试图实现的是将需要动态生成的所有内容的HTML模板存储在单独的js文件中(而不是在页面中呈现) buildHtml函数显示其当前设置如何正常工作。我陷入困境的是如果。。模板对象中还有另一个变量,称为“input3”,其标记类似于(commonInput的精确标记) 我尝试将其用作input 3:''+this.commonInput+',但结果表明,您无法使用this从内部引用对象属性 我可以用完整的html创建“input3”,但是对于大的html块,这种方法不是很有用 寻找 这一具体问题的
buildHtml
函数显示其当前设置如何正常工作。我陷入困境的是如果。。模板对象中还有另一个变量,称为“input3”,其标记类似于(commonInput的精确标记)
我尝试将其用作input 3:''+this.commonInput+'
,但结果表明,您无法使用this
从内部引用对象属性
我可以用完整的html创建“input3”,但是对于大的html块,这种方法不是很有用
寻找
$j(document).ready(function() {
var namespace = window.namespace || {};
namespace.feature = namespace.appName || {};
namespace.feature.templates = {
input1 : '<div>'+
'<p class="abc">Hey {username}</p>'+
'</div>',
input2 : '<div>'+
'<div class="description">{description}</div>'+
'</div>',
commonInput : '<div class="common">Common code</div>'
};
namespace.feature.module = function() {
var container = $j('#container'),
t = namespace.feature.templates;
var buildHtml = function(type) {
var tmpHtml = t.input1 + t.commonInput + t.input2;
container.append(tmpHtml);
}
var init = function() {
buildHtml();
}
return {
init : init,
};
}();
namespace.feature.module.init();
});
$j(文档).ready(函数(){
var namespace=window.namespace | |{};
namespace.feature=namespace.appName | |{};
namespace.feature.templates={
输入1:“”+
“嘿{username}
”+
'',
输入2:“”+
“{description}”+
'',
commonInput:“通用代码”
};
namespace.feature.module=函数(){
var container=$j(“#container”),
t=namespace.feature.templates;
var buildHtml=函数(类型){
var tmpHtml=t.input1+t.commonInput+t.input2;
container.append(tmpHtml);
}
var init=函数(){
buildHtml();
}
返回{
init:init,
};
}();
namespace.feature.module.init();
});
我不确定你的确切问题是什么,但就更好的选择而言, 我建议使用jQuery模板 以下是针对所有不同模板引擎及其性能的基准测试页面: 您可以查看修订版以找到不同的引擎组合,也可以在不同的浏览器上运行它们以查看速度差异 更新:原始jquery模板项目不再处于活动状态。这是旧项目的新家:
我不再推荐jquery模板,因为现在有更好的替代方案。我最后一次检查,似乎是最有希望的 就在我头上 您可以将模板编写为构建字符串的函数
input3 : function(param) {
return '<div>' + param + '</div>'
}
此外,我喜欢在构建HTML时构建自己的DOM对象。并避免使用硬编码字符串
input3 : function(param) {
return '<div>' + param + '</div>'
}
您是否考虑过使用“谢谢兄弟”。。。谢谢你的帮助!您对这种动态创建内容的方法有何想法。。。您推荐任何其他方法/解决方案。不幸的是,我这里有一个问题,那就是链接已经腐烂了。也许这就是你所说的项目?取出连杆并更换为正确的连杆。你的那件看起来很像,但不是原来的。