【发布时间】:2014-11-04 06:38:40
【问题描述】:
当我在渲染函数中设置视图时,我得到了重复的 ID
var template = _.template($("#user-login-template").html(), {});
this.$el.html(template);
运行渲染函数后,运行渲染函数之前的 html 如下所示。事先,<div class ="app"> 是空的(应该是)。它将模板中的代码复制粘贴到 div 中。
<div class="app">
<input type="text" id="signup-username" placeholder="Username"/>
<input type="password" id="signup-password" placeholder="Create a Password"/>
<button id="signUpBtn">Sign Up</button>
<button id="logInBtn">Login</button>
</div>
<!-- Templates -->
<!-- Login Template -->
<script type="text/template" id="user-login-template">
<input type="text" id="signup-username" placeholder="Username"/>
<input type="password" id="signup-password" placeholder="Create a Password"/>
<button id="signUpBtn">Sign Up</button>
<button id="logInBtn">Login</button>
</script>
作为参考,这是我的整个视图的样子
var LogInView = Parse.View.extend({
el: '.app',
events: {
"click .signUpBtn": "signUp",
"click .logInBtn": "logIn"
},
initialize: function (){
this.render()
},
logIn: function () {
//To Do
},
render: function () {
var template = _.template($("#user-login-template").html(), {});
this.$el.html(template);
}
});
【问题讨论】:
-
id容器内的id属性根本不是id属性,它只是一段未解析的字符数据。您问题中的 HTML sn-p 仅包含一个#signUpBtn,<script>中的<button id="signUpBtn">Sign Up</button>根本不是 HTML。这是你担心的根本问题吗? -
是的,我担心在渲染 iew 后,我的 html 中出现了两次 id(“signUpBtn”、“loginBtn”)。当我检查元素时,Webstorm(我的 IDE)给了我一个“Duplicate id reference”错误
标签: html parsing templates backbone.js duplicates