Angularjs 角度误差;n、 是不是一个函数;在注册的输入字段中包含ng模型时-为什么?
我将nodejs用于后端,angular用于fronend(将materialize用于css),并尝试为注册编写代码。当我删除ng模型时,我没有得到任何错误,但是,当我在输入中包括ng模型时,当我开始在密码/电子邮件字段中键入时,我得到一个奇怪的角度错误:TypeError:n.is不是函数或TypeError:n.trigger不是函数。我不知道-n-是什么,也没有n函数。一直在搜索互联网等,但无法找出问题所在。此外,注册不起作用(以前是这样)。有人有主意吗?谢谢大家! 浏览器/js/signup.htmlAngularjs 角度误差;n、 是不是一个函数;在注册的输入字段中包含ng模型时-为什么?,angularjs,node.js,login,angular-ngmodel,materialize,Angularjs,Node.js,Login,Angular Ngmodel,Materialize,我将nodejs用于后端,angular用于fronend(将materialize用于css),并尝试为注册编写代码。当我删除ng模型时,我没有得到任何错误,但是,当我在输入中包括ng模型时,当我开始在密码/电子邮件字段中键入时,我得到一个奇怪的角度错误:TypeError:n.is不是函数或TypeError:n.trigger不是函数。我不知道-n-是什么,也没有n函数。一直在搜索互联网等,但无法找出问题所在。此外,注册不起作用(以前是这样)。有人有主意吗?谢谢大家! 浏览器/js/sig
<div class="signup-wrapper">
<form id="signup-form" name="signupForm" ng-submit="signupForm.$valid && sendSignup(signup)">
<alert type="danger" ng-show="error"> {{ error }} </alert>
<div class="form-group">
<label for="email" >Email address</label>
<input style="width:300px;" type="text" ng-model="signup.email" class="form-control" id="email" placeholder="Enter email">
</div>
<div class="form-group">
<label for="signup-password">Password</label>
<input style="width:300px;" type="password" ng-model="signup.password" class="form-control" id="signup-password" placeholder="Password">
<input type="password" ng-model="signup.confirm" placeholder="Confirm Password">
</div>
<div class="signup-btn-group">
<button type="submit" class="btn btn-default">Sign Up</button>
</div>
</form>
</div>
}))
服务器/app/configure/authentication/local.js:
app.post('/signup', function(req, res, next) {
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var test = re.test(req.body.email);
if (req.body.password !== req.body.confirm) {
res.send('passwords do not match')
} else if (!test) {
res.send('not a valid email')
} else {
User.findOne({
where: {
email: req.body.email
}
}).then(function(userOrNull) {
if (userOrNull) {
res.send('email exists already')
} else {
User.create(req.body)
.then(function(user) {
req.login(user, function(err) {
if (err) console.log(err);
res.redirect('/login');
})
})
}
})
}
});
app.post('/signup',函数(req,res,next){
变量re=/^([^()\[\]\\,;:\s@“]+(\.[^()\[\]\,;:\s@“]+)*)(“+”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]124;([a-zA Z-0-9]++\];
var测试=重新测试(请求正文电子邮件);
if(req.body.password!==req.body.confirm){
res.send('密码不匹配')
}否则如果(!测试){
res.send('不是有效的电子邮件')
}否则{
User.findOne({
其中:{
电子邮件:req.body.email
}
}).then(函数(userOrNull){
if(userOrNull){
res.send('电子邮件已存在')
}否则{
User.create(请求主体)
.then(功能(用户){
请求登录(用户、功能(错误){
if(err)console.log(err);
res.redirect('/login');
})
})
}
})
}
});
编辑:
<link rel="stylesheet" type="text/css" href="/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="/materialize-css/bin/materialize.css">
<link rel="stylesheet" type="text/css" href="/style.css" />
<script src="/lodash/index.js"></script>
<script src="/angular/angular.js"></script>
<script src="/angular-animate/angular-animate.js"></script>
<script src="/angular-ui-router/release/angular-ui-router.js"></script>
<script src="/angular-ui-bootstrap/ui-bootstrap.js"></script>
<script src="/angular-ui-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="/socket.io-client/socket.io.js"></script>
<script type="text/javascript" src="/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="/materialize-css/bin/materialize.js"></script>
<script type="text/javascript" src="/angular-materialize/src/angular-materialize.min.js"></script>
<script src="/main.js"></script>
您应该在.js文件中检查表单是否为$valid。因此,如果成功,$scope.signupForm.$valid=true;您只需要调用sendSignup方法 另外,您的注册表单正在寻找一些$scope.signup.confirm=true。。这就是它不能工作的原因(我看不出你真的在用它)
希望这有帮助!如果你需要更多的帮助,请告诉我 检查表单是否为$valid应该发生在.js文件中。因此,如果成功,$scope.signupForm.$valid=true;您只需要调用sendSignup方法 另外,您的注册表单正在寻找一些$scope.signup.confirm=true。。这就是它不能工作的原因(我看不出你真的在用它)
希望这有帮助!如果你需要更多的帮助,请告诉我 您在注释中添加了更多错误消息:
angular.js:14110 TypeError: n.trigger is not a function
at angular-materialize.min.js:1
at angular.js:19861
at completeOutstandingRequest (angular.js:6035)
at angular.js:6314
因此,尽管您在问题中没有提到它,但您使用的是angular materialize
模块,而抛出错误的正是该模块。查看angular materialize的未压缩源代码,我可以看到它希望在DOM元素上找到一个trigger
方法
该模块的自述文件显示:
Angular查找jQuery,如果不存在,则使用jQlite。一些
angular materialize的指令使用了一些jQuery方法,所以请确保
Angular使用它而不是jQlite
我认为你的问题很简单,你使用了一个依赖于jQuery的模块,但你的应用程序中没有包含jQuery。你在评论中添加了更多的错误消息:
angular.js:14110 TypeError: n.trigger is not a function
at angular-materialize.min.js:1
at angular.js:19861
at completeOutstandingRequest (angular.js:6035)
at angular.js:6314
因此,尽管您在问题中没有提到它,但您使用的是angular materialize
模块,而抛出错误的正是该模块。查看angular materialize的未压缩源代码,我可以看到它希望在DOM元素上找到一个trigger
方法
该模块的自述文件显示:
Angular查找jQuery,如果不存在,则使用jQlite。一些
angular materialize的指令使用了一些jQuery方法,所以请确保
Angular使用它而不是jQlite
我认为你的问题很简单,你使用了一个依赖于jQuery的模块,但你的应用程序中没有包含jQuery。你只需要在加载之前加载jQuery即可
这确保Angular可以使用完整的jQuery库而不是jQlite。您只需在加载Angular之前加载jQuery即可
这确保Angular可以使用完整的jQuery库而不是jQlite。Well在slick.min.js和Angular-slick.min.js中也遇到了同样的问题,在花了大量时间搜索解决方案后,我终于发现问题很简单,我的常识不起作用 我按以下顺序添加了js文件,错误消失了。希望有人觉得它有用:
1) jquery.min.js
2) jquery-ui.min.js
3) slick.min.js
4) angular.js
5) angular-filter.js
6) angular-slick.min.js
...
...
在您的情况下,您可以尝试以下顺序,看看是否有效
<script src="/jquery/dist/jquery.min.js"></script>
<script src="/materialize-css/bin/materialize.js"></script>
<script src="/angular/angular.js"></script>
<script src="/angular-animate/angular-animate.js"></script>
<script src="/angular-ui-router/release/angular-ui-router.js"></script>
<script src="/angular-materialize/src/angular-materialize.min.js"></script>
<script src="/angular-ui-bootstrap/ui-bootstrap.js"></script>
<script src="/angular-ui-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="/lodash/index.js"></script>
<script src="/socket.io-client/socket.io.js"></script>
<script src="/main.js"></script>
Well在slick.min.js和angular-slick.min.js上也有同样的问题,在花了很多时间寻找解决方案后,我终于发现问题很简单,我的常识也不起作用 我按以下顺序添加了js文件,错误消失了。希望有人觉得它有用:
1) jquery.min.js
2) jquery-ui.min.js
3) slick.min.js
4) angular.js
5) angular-filter.js
6) angular-slick.min.js
...
...
在您的情况下,您可以尝试以下顺序,看看是否有效
<script src="/jquery/dist/jquery.min.js"></script>
<script src="/materialize-css/bin/materialize.js"></script>
<script src="/angular/angular.js"></script>
<script src="/angular-animate/angular-animate.js"></script>
<script src="/angular-ui-router/release/angular-ui-router.js"></script>
<script src="/angular-materialize/src/angular-materialize.min.js"></script>
<script src="/angular-ui-bootstrap/ui-bootstrap.js"></script>
<script src="/angular-ui-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="/lodash/index.js"></script>
<script src="/socket.io-client/socket.io.js"></script>
<script src="/main.js"></script>
请复制/粘贴完整的错误消息,它可能包括带有文件名和行号的堆栈跟踪。另外,如果是angular,它可能会包含一个指向angular网站上非常有用的页面的链接,该页面将告诉您有关错误的更多信息。angular.js:14110 TypeError:n.trigger不是angular materialize.min.js:1 at angular.js:19861 at completeOutstandingRequest(angular.js:6035)at angular.js:6314的函数谢谢。我看不到链接请复制/粘贴完整的错误消息,它可能包括带有文件名和行号的堆栈跟踪。此外,如果是angular,它可能会包含一个指向angular网站上非常有用的页面的链接,该页面将告诉您有关错误的更多信息。angular.js:14110 TypeError:n.trigger不是angular materialize的函数。min.js:1在angular.js:19861在completeOutstandingRequ