我在MEAN堆栈上运行了一个应用程序。我正在使用jade模板,并想知道在哪里放置页面特定的JavaScript。现在我的目录看起来像:
app/
|- public
| |- js
| |- css
|- views
|- routes
|- schemas
我的一个观点signup.jade
,我需要包含一些javascript:
$(function() {
$.validator.addMethod("passwordStrength", function( value, element ) {
console.log("here")
var result = this.optional(element) ||
/^[a-zA-Z0-9- ]*$/.test(value) &&
/\d/.test(value) &&
/[a-z]/i.test(value);
if (!result) {
var validator = this;
}
return result;
}, "Your password must contain at least one number and one special character.");
$('#signup').validate({
rules: {
email: {
required: true
},
password: {
required: true,
passwordStrength: true,
minlength: 6
},
"repeat-password": {
required: true,
passwordStrength: true,
minlength: 6
}
}
});
});
放置这个的最佳位置在哪里?我是否为app / public / js中的每个页面创建了一个javascript文件?
如果有人对MEAN文件结构最佳实践有任何好文章,那么这些也将受到赞赏,谢谢!
答案 0 :(得分:0)
根据我的经验,如果这样的脚本只使用一次,那么将脚本保存在相应的玉视图中是完全可以的。
然而,您可以使用帮助程序创建目录并将此脚本移动到此目录(只需创建一个普通的js文件),然后通过添加变量并将其值设置为文件内容将其添加到页面上。它可能看起来更干净(并允许你将js lint应用于助手等)但需要更多的工作。
答案 1 :(得分:0)
以下是我的代码的组织方式。我们正在使用自耕农的角度全栈发生器。在我提供的图像中,home.html是部分视图,其控制器是home.js.我建议你为你创建的每个html部分页面创建一个单独的文件。事实上,一个好的角度页面应该有用户定义的指令,并且各自的控制器将范围挂钩到指令和管理已提供的范围的指令。它保持整洁/简单/美丽。如果你有机会并且能够负担得起,那就购买ng-book。它很漂亮,甚至angular's guide也很棒。