Я использую nodejs для бэкэнд и угловых для fronend (и используя материализацию для css) и пытаюсь написать код для регистрации. Когда я удаляю ng-модель, я не получаю никаких ошибок, однако, когда я включаю ng-модель во вход, в тот момент, когда я начинаю вводить пароль в поле password/email, я получаю странную угловую ошибку: TypeError: n.is не является function или TypeError: n.trigger не является функцией. Я понятия не имею, что -n- есть и не имеет n функции в любом месте. Были поиск в Интернете и т. Д., Но не могу понять, что неправильно. Также регистрация не работает (это было раньше). У кого-то есть идея? Спасибо!Угловая ошибка «n.is не является функцией» при включении ng-модели в поле ввода регистрации -why?
Браузер/JS/signup.html
<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>
Браузер/JS/signup.js:
app.config (функция ($ stateProvider) {
$stateProvider.state('signup', {
url: '/signup',
templateUrl: 'js/signup/signup.html',
controller: 'SignupController'
});
});
app.controller('SignupController', function ($scope, AuthFactory, $state) {
$scope.signup = {};
$scope.sendSignup = function (signupInfo) {
AuthFactory.signup(signupInfo)
.then(function (response) {
if (response === 'email exists already') {
Materialize.toast('User already exists', 2000);
}
else if (response === 'not a valid email'){
Materialize.toast('It is not a valid email', 2000);
}
else if (response === 'passwords do not match'){
Materialize.toast('Your passwords do not match. Please try again!', 2000);
}
else {
Materialize.toast('Go ahead and login', 4000);
$state.go('login');
}
})
}
});
сервер/приложение/настроить/аутентификации/local.js:
app.post('/signup', function(req, res, next) {
var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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');
})
})
}
})
}
});
EDIT:
<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>
Скопируйте/вставьте полное сообщение об ошибке, оно, вероятно, включает в себя трассировку стека с именами файлов и номерами строк. Кроме того, если он в угловом, это, вероятно, включает ссылку на очень полезную страницу на угловом веб-сайте, которая расскажет вам гораздо больше об ошибке. – Duncan
angular.js: 14110 TypeError: n.trigger не является функцией at angular-materialize.min.js: 1 на угловых.js: 19861 at completeOutstandingRequest (angular.js: 6035) at angular.js: 6314 – web2016
Спасибо. Я не мог видеть ссылку – web2016