我正在使用角度和护照进行用户身份验证;我正在尝试在保存表单时传递登录的用户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中),即使我能够显示电子邮件。
有什么想法吗?
由于
答案 0 :(得分:3)
您的表单如何知道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
与函数OUTSIDE的值不同。这样做的原因是,当user
的值被用作函数定义中的参数时,尝试调用该值 - 就像在console.log(user)
语句中所做的那样 - 您基本上是在说& #34; console.log传递给该函数的值。"如果您已经知道这一点,请原谅我,但在JavaScript函数中,参数仅作为函数调用的值的引用。