gpt4 book ai didi

AngularJS - 使用参数调用 ng-submit

转载 作者:行者123 更新时间:2023-12-03 07:01:57 25 4
gpt4 key购买 nike

我正在使用 Angular 和 Passport 进行用户身份验证;我试图在保存表单时传递登录的用户 ID,但无法使其正常工作。我的代码非常简单:

site.jade:

div(ng-controller='sitesController')
h1 #{user.local.email}
form.(ng-submit="createSite(user)")
label Site Name
input.(type="text" ng-model="siteName")
button.btn.btn-primary(type="submit") Save


sitesController.js

$scope.createSite = function (user) {
console.log(user); // user = undefined
}

即使我能够显示电子邮件,用户始终是“未定义”(在 console.log 中)。

有什么想法吗?

谢谢

最佳答案

你的表单应该如何知道user是什么?之所以未定义,是因为你还没有定义它。为什么不直接这样做呢?

site.jade:

div(ng-controller='sitesController')
h1 #{user.local.email}
form.(ng-submit="createSite()")
//removed the argument from above.
label Site Name
input.(type="text" ng-model="siteName")
button.btn.btn-primary(type="submit") Save


sitesController.js

$scope.createSite = function () {
console.log($scope.siteName);
}

在您的 $scope.createSite() 函数中,值 user 与函数外部的值不同。原因是当 user 的值用作函数定义中的参数时,尝试调用该值 - 就像您在 console.log(user)< 中所做的那样 语句——您实质上是在说“console.log 传递到此函数的值”。如果您已经知道这一点,请原谅我,但在 JavaScript 函数参数中仅充当调用函数所用值的引用。

这里有一点JSfiddle to illustrate my point .

关于AngularJS - 使用参数调用 ng-submit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com