Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-使用参数调用ng submit_Angularjs_Passport.js - Fatal编程技术网

AngularJS-使用参数调用ng submit

AngularJS-使用参数调用ng submit,angularjs,passport.js,Angularjs,Passport.js,我正在使用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="sit

我正在使用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中),即使我能够显示电子邮件

有什么想法吗


谢谢

您的表单应该如何知道
用户是什么?它未定义的原因是您尚未定义它。为什么不这样做呢

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中,函数参数仅作为调用函数时使用的值的引用


这里有一点。

您的意思是在不发出额外的
$http
请求的情况下执行此操作吗?表单和用户之间的连接在哪里?显示的代码片段似乎不连贯。什么是
siteName
?我有一个名为Site的模型,它包含siteName和其他名称,但我认为这与此无关(?)。siteController.js是上面ng控制器引用的控制器实现。将
user.local.email
放入
createSite
函数时会发生什么?无论哪种方式,如果
user
绑定到
$scope
对象,您就不用担心从html中传入值,而是
console.log($scope.user)
,它应该/将会工作。感谢您的详细回答。也许我在你的回答中遗漏了什么;我不想用太多的代码使我的问题过于复杂。正如我所说,我能够打印用户电子邮件(参见h1标签)。您的代码无法解决我的问题,因为我需要将用户ID传递给createSite函数。请原谅我的混淆。当用户到达表单时,他们是否已经登录?