我正在学习如何开发节点应用程序。这是一个人们可以发布城市周围发生的事件的应用程序。
我有一个 ejs 文件 new.ejs,它允许用户提交新事件。显然,有一个事件开始时间和结束时间。我想确保结束时间在开始时间之后,所以我简单地添加了一个脚本来执行此操作,如下所示:
<!-- EVENT DATE AND TIME -->
<div class=row>
<!-- DATE -->
<div class="form-group col-md-4">
<label for="date">Date *</label>
<input name="date" type="date" class="form-control" id="date">
</div>
<!--START TIME -->
<div class="form-group col-md-4 ">
<label for="starttime">Start Time *</label>
<input name="starttime" type="text" class="form-control" id="starttime">
</div>
<!--END TIME -->
<div class="form-group col-md-4 ">
<label for="endtime">End Time *</label>
<input name="endtime" type="text" class="form-control" id="endtime">
</div>
<script type="text/javascript">
$('#starttime').timepicker();
$('#endtime').timepicker({
'minTime': '12:00am',
'showDuration': true
});
$('#starttime').on('changeTime', function() {
$('#endtime').timepicker('option', 'minTime', $(this).val());
});
</script>
</div> <!-- END OF ROW -->
现在效果很好,它达到了我想要的效果。
但是,我知道 EJS 旨在获取后端(节点)javascript 代码并将其呈现到视图中。
我的问题是:
在标签之间添加前端代码是一种黑客行为吗?即,这是正确的编码实践吗?如果没有,更好的方法是什么?
现在,我的脚本标签之间只有少量代码。当我继续开发应用程序时,如果代码变得太长会发生什么?它应该保留在 ejs 文件中吗?看起来太乱了...
如果您的应用程序是服务器端渲染的(不是单页应用程序),那么您的方法是合理的。
您可以将 JS 文件中的代码放在/public
文件夹并配置节点服务器以将这些文件作为静态文件提供服务,并添加<script>
中的标签.ejs
引用这些 JS 文件的文件。
我有一个具有此类实现的示例项目。This https://github.com/yangshun/nutty-ninjas/blob/master/views/arena.jade将是你的 ejs 文件(对于我的情况是 jade)并且this https://github.com/yangshun/nutty-ninjas/tree/master/public/js是放置脚本文件的地方。最后,将您的应用程序配置为从类似目录提供静态资源this https://github.com/yangshun/nutty-ninjas/blob/master/app.js#L23.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)