javascript - JSON field undefined in EJS template -
on front-end, have html:
<a name="user" id="user" value="<%=user%>"></a>
i entirely sure user defined on front-end
and have js file this:
var user; var teamcollection = new teamcollection([]); //new backbone collection $(document).ready(function(){ user = $("#user").attr("value"); //pull user object html window.userhomemaintableview = new userhomemaintableview({el: $("#user-home-main-table-div")}); window.userhomemaintableview.render(); });
the render method of userhomemaintableview looks this:
render: function () { console.log('teamcollection models:', teamcollection.models); //defined console.log('user:', user); // defined var data = {teamcollection:teamcollection,user:user}; //this should point user variable @ top of js file. var html = new ejs({url: '/js/backbone/views/userhomeviews/templates/main_table_template.ejs'}).render(data); this.$el.html(html); return this; },
so, user var defined @ top of js file, somehow when pass data ejs template, teamcollection defined user not.
how can be? reason why be?
here ejs file
<table class="table"> <thead> <tr> <th>#</th> <th>team name</th> <th>club</th> <th>sport</th> <th>delete?</th> </tr> </thead> <tbody> <% for(var i=0; <teamcollection.models.length; i++) { //teamcollection defined :) var team = teamcollection.models[i].tojson(); var user_id = user._id; //user undefined !! :( %> <tr> <td> <%=i+1%> </td> <td> <a class="font-big" href='/users/<%=user_id%>/teams/<%= team._id%>/teamdashboard'> <%= team.sport %> </a> </td> <td> <a class="btn btn-warning" onclick=window.userhomemaintableview.deleteteam("<%= team._id%>");>delete</a> </td> </tr> <% } %> </tbody> </table>
Comments
Post a Comment