我正在使用AngularJD将数据插入到mongoose db中。我的索引文件有一个div:
<div id="links" ng-controller="loginController">
<a ui-sref="login">Login</a>
<a ui-sref="register">Register</a>
</div>
我使用路由重定向到此页面。在我的注册页面上,我试图在按钮的点击事件上调用一个函数:
<form ng-app="login" name="myForm" ng-submit="addNew()" novalidate>
<p>
<input type="submit"
ng-disabled="myForm.lname.$dirty && myForm.lname.$invalid ||
myForm.fname.$dirty && myForm.fname.$invalid ||
myForm.mail.$dirty && myForm.mail.$invalid ||
myForm.pwd.$dirty && myForm.pwd.$invalid ||
myForm.cpwd.$dirty && myForm.cpwd.$invalid">
</p>
</form>
这是我的app.js文件:
function loginController($scope)
{
console.log('inside');
$scope.addNew = function()
{
console.log('adding new entry');
var newuser = {
username: $scope.NewUname,
firstname: $scope.fName,
lastname: $scope.lName,
email: $scope.mail,
$password: $scope.pwd
}
}
}
当我调试时,它会记录“内部”而不是“添加新条目”。
答案 0 :(得分:2)
您的问题是您在ng-app
路由模板中的表单上创建了register.html
。使用ng-app="login"
建立应用的元素应包含其他所有内容。因此,通过loginController
实例化的ng-controller="loginController"
实际上并未创建,因为它位于角度应用程序之外。
我刚注意到您说“内部”已记录,这实际上意味着loginController
正在实例化。我猜你在ng-app
div周围的其他一些包含上下文中建立了另一个links
。但是,我仍然认为您的问题是您在ng-app
中的表单上创建了新的register.html
。我很确定你不能将角度应用程序嵌套在另一个应用程序中。最好的情况是,这会中断表单中的loginController
上下文(它可能比这更糟糕/更糟)。无论如何,我认为ng-app
声明是你的问题。