Backbone.js 由grunt contrib jst编译时下划线jst tempates的正确模式-未定义错误
我已设法将我收到的错误消息缩小到一行Backbone.js 由grunt contrib jst编译时下划线jst tempates的正确模式-未定义错误,backbone.js,underscore.js,underscore.js-templating,Backbone.js,Underscore.js,Underscore.js Templating,我已设法将我收到的错误消息缩小到一行 ReferenceError: property is not defined ((__t = ( property )) == null ? '' : __t) + 视图控制器如下所示(为简洁起见进行了简化) 编译后的文件如下所示 this["JST"] = this["JST"] || {}; this["JST"]["public/js/app/templates/desk-view-main.html"] = function(obj) { o
ReferenceError: property is not defined
((__t = ( property )) == null ? '' : __t) +
视图控制器如下所示(为简洁起见进行了简化)
编译后的文件如下所示
this["JST"] = this["JST"] || {};
this["JST"]["public/js/app/templates/desk-view-main.html"] = function(obj) {
obj || (obj = {});
var __t, __p = '', __e = _.escape;
with (obj) {
__p += ' <nav id="tweak"></nav>\n <div class="desk">\n <h3>Workspace:</h3>\n <strong> ' +
((__t = ( property )) == null ? '' : __t) +
'</strong>\n\n <h3>end Workspace:</h3>\n </div>\n</div>\n';
}
return __p
};
this[“JST”]=this[“JST”]| |{};
这个[“JST”][“public/js/app/templates/desk view main.html”]=函数(obj){
obj | |(obj={});
变量t,p='',e=.escape;
带(obj){
__p+='\n\n工作区:\n'+
(((_t=(属性))==null?“”:_t)+
“\n\n结束工作区:\n\n\n”;
}
返回
};
从以下public/js/app/templates/desk-view-main.html
<div class="desk">
<h3>Workspace:</h3>
<span> <%= property %></span>
<h3>end Workspace:</h3>
</div>
工作空间:
结束工作区:
到目前为止,我还无法找到正确的模式来使用带变量的编译模板(如果删除属性变量,效果很好)。这是一个javascript对象。你是对的,但是,它有一个明显的打字错误。var dictionary={“key”:“value”}所以您调用的模板使用
属性
和{“key”:“value”}
这样的对象,而不是{property:'some value'}
?据我所知,属性周围的引号同样有效。因此window.obj={key:“some value”}和window.obj={“property”:“some value”}都是有效的javascript(尽管前者可能更清晰、更正确。经过测试,在传递到内联模板时,这两种方法似乎都起作用,设置JST['path/templ.js'似乎有问题这是通过下划线模板方法解析的。是的,但是key
和property
是不同的键。。。
<div class="desk">
<h3>Workspace:</h3>
<span> <%= property %></span>
<h3>end Workspace:</h3>
</div>