为什么在backbone.js中查看视图时会渲染额外的div
Backbone.View.extend({
template :_.template(
'<li id="user-<%=user.username%>" class="pp-entry group">'+
'<img src="i/pp-pic-1.png" class="pp-pic" alt="" />'+
'<span class="whisper-mode-on hide" title="Whisper mode on"></span>'+
'<h6 class="pp-name"><%=user.firstname%> <%if(user.lastname!="null"){%><%=user.lastname%><%}%></h6>'+
'<p id="chat-<%=user.username%>"class="pp-msg"></p>'+
'</li>'),
initialize: function() {
_.bindAll(this, 'render', 'close');
this.model.bind('change', this.render);
this.model.view = this;
},
// Re-render the contents of the User item.
render: function() {
$(this.el).html(this.template(this.model.toJSON()));
$("#participant-window").prepend(this.el);
}
});
Run Code Online (Sandbox Code Playgroud)
什么时候它正在渲染它像这样:
<ul id="participant-window" class="scroll-pane" style="overflow: hidden; padding: 0px; width: 357px;">
<div>
<li id="user-ashutosh" class="pp-entry group" style="cursor: default;">
<img class="pp-pic" alt="" src="i/pp-pic-1.png">
<span class="whisper-mode-on hide" title="Whisper mode on"></span>
<h6 …Run Code Online (Sandbox Code Playgroud) 在JSP中,我注意到我无法将$ {}呈现为HTML.呈现页面后,HTML页面将不再显示$ {}.根据我的理解,$ {}是java语法的一部分.
有没有办法将其呈现为HTML?目前,我使用print"$ {}"作为字符串,所以我可以在我的HTML上呈现它.我需要渲染这个符号,因为它是以后我可以使用jquery获取此符号.(仅供参考:我正在使用jquery模板)
提前致谢
如何在JSRender中的模板中渲染模板?在之前的jquery模板中,我可以使用
{{tmpl(Languages) "#languageTemplate"}}
在JSRender中,我可以在条件语句和循环中找到模板组合示例.我想独立调用模板.
我正在将Knockout添加到大型应用程序的特定部分.其他部分使用jQuery模板(并且它嵌入在基础JS文件中),所以它在全局jQuery对象上,我无法删除它.
我foreach在模板中使用绑定时遇到以下错误消息:
This template engine does not support the 'foreach' binding within its templates
Run Code Online (Sandbox Code Playgroud)
当使用带有Knockout的jQuery模板引擎时,这似乎是一个问题.有没有办法让Knockout使用其默认模板引擎而不是jQuery模板?
我真的非常高兴我的第一次体验Knockout.js,非常棒的图书馆,但我仍然试图围绕它的模板功能,例如这个非常简单的联系人应用程序,我想为每个创建一个表格行新联系人:
<h3>Contact</h3>
<p>First Name: <input data-bind="value: contactFirstName" /></p>
<p>Last Name: <input data-bind="value: contactLastName" /></p>
<p>Email Address: <input data-bind="value: contactEmailAddress" /></p>
<button data-bind="click: addContact">Add</button>
<table>
<thead>
<tr>
<td>First Name</td>
<td>Last Name</td>
<td>Email Address</td>
</tr>
</thead>
<tbody data-bind="template: {name: 'contactsTemplate', foreach: contacts}" />
</table>
<script id="contactsTemplate" type="text/html">
<tr>
<td>${ $data.firstName }</td>
<td>${ $data.lastName }</td>
<td>${ $data.emailAddress }</td>
</tr>
</script>
<script type="text/javascript">
function contact(firstName, lastName, emailAddress) {
return {
firstName: ko.observable(firstName),
lastName : ko.observable(lastName),
emailAddress: ko.observable(emailAddress)
};
}
var viewModel = …Run Code Online (Sandbox Code Playgroud) 我想我今天刚刚盯着我的屏幕太久了 - 我在这里找不到错误.我有一个jQuery模板,我正在使用KnockoutJS的foreach.在里面我有一个按钮,我试图调用函数onclick并传入迭代值.这是模板的片段.我能想到的唯一一件事就是我的jQuery模板语法是错误的,因为它在其他地方工作
<button onclick="newTabify(${$data})">Chat</button>
我的模板看起来像这样......(里面的按钮,以及其他一些东西)
<div data-bind='template: {name: "contactTemplate", foreach:contacts}' id="contactList"></div>
<script id='contactTemplate' type='text/html'>
...
</script>
Run Code Online (Sandbox Code Playgroud)
newTabify函数如下所示:
function newTabify(contact) {
tabify($.inArray(contact, viewModel.contacts()));
}
Run Code Online (Sandbox Code Playgroud)
这里极端奇怪的是错误.
SCRIPT1007: Expected ']'
default.html, line 1 character 19
Run Code Online (Sandbox Code Playgroud)
第1行是我的<head>标签!!
如果你需要更多标记只是lemme知道.谢谢!
编辑:这是我的联系模板.有趣的是,除了按钮上的点击事件,当我尝试添加如上所示的线时,它没有任何问题.但无论如何,这是剩下的.
{{if $data.jid() != viewModel.jid() }}
<div class="wrapper" onclick="wrapperClick(this)">
<div style="padding-bottom:4px">
<img src=images/${$data.avail}.png> ${ $data.name } <img class="avatar" src=images/${$data.img}><br> <span class="status">${$data.status }</span>
</div>
<a href="mailto:${$data.jid}" >${$data.jid}</a> | <button onclick="newTabify(${$data})">Chat</button> | <button onclick="event.stopPropagation();">Call</button>
</div>
{{/if}}
Run Code Online (Sandbox Code Playgroud)
编辑2:$ data一个联系对象; 我正在遍历联系人(一个可观察的联系对象数组)并成功地将所有值拉出联系,等等.这是我的联系方式:
function contact(name, status, avail, jid, img, …Run Code Online (Sandbox Code Playgroud) 当你想要将对象值转换为布尔值并将其保存在变量中时,我可以理解这种情况.但是,我在jQuery模板中遇到了以下代码,并想知道是否!! (双感叹号运算符)甚至是必要的.
{{if !!sectionId}}
// do something...
{{/if}}
Run Code Online (Sandbox Code Playgroud)
我假设它不是因为Javascript会自动评估if作为布尔值后面的表达式.因此,你可以写:
{{if sectionId}}
// do something...
{{/if}}
Run Code Online (Sandbox Code Playgroud)
我的假设是对的吗?
我需要构建一个jQuery模板,该模板具有月份下拉列表和月中的一天下拉列表.对于我来说,在我的每个JSON模型项中包含一个月份列表和一天列表似乎有点过分,这些项目的值为1到31,这样我就可以使用{{each}}语法构建选项.
我已经在另一个答案中看到了如何在{{each}}中添加动态数组: 我可以在jQuery模板中声明local/temp变量吗?
我可以在其中定义一个值为1到31的数组.但即使这样也有点冗长.有没有更好的方法在jquery模板中执行for循环?
我可能会找到一些日期对象来迭代日期特定情况,但是与循环用例相关的非日期呢?
我希望在模板体中完全定义循环而不使用外部全局变量.使用全局变量,我可以轻松使用{{each}}.
所以,我刚刚了解了这些,并准备把它们放到一个网站上.现在,这个问题我冒充是,这是否在所有引发错误的任何孩子在IE 6+ 是的,我知道IE6,你能做什么..当我说错误时,我指的是IE错误/警告.
像往常一样感谢所有帮助,提前感谢.
-Wes
我是新来的 Sails.js
我试图assets/templates在sails中使用该功能来呈现数据客户端,但我似乎找不到任何有用的示例.
我正在寻找原生的Sails解决方案,没有角度或其他框架.只需.JST从中加载模板assets/templates并使用jQuery填充它们
任何人都可以参考使用客户端模板的工作示例
sails.js?
jquery-templates ×10
jquery ×9
knockout.js ×3
javascript ×2
backbone.js ×1
jsp ×1
jsrender ×1
jst ×1
sails.js ×1