Javascript 无法通过$scope获取ng模型的值

Javascript 无法通过$scope获取ng模型的值,javascript,html,angularjs,angularjs-scope,Javascript,Html,Angularjs,Angularjs Scope,我试图在单击按钮时获取ng模型的值,该按钮触发一个函数,将每个ng模型值添加到一个对象中。当尝试获取$scope.shipNameFirst的值时,在第二个示例中,它显示为未定义 我已经读到,最好在视图上获取$scope的值,而不是通过stripeBtn函数传递它,所以理想情况下我希望这样做。希望这是有道理的 有人能解释为什么这不起作用吗 工作 HTML 不起作用 HTML 谢谢 检查以下代码。它工作得很好 var myApp=angular.module('myApp',[]); myApp

我试图在单击按钮时获取ng模型的值,该按钮触发一个函数,将每个ng模型值添加到一个对象中。当尝试获取
$scope.shipNameFirst
的值时,在第二个示例中,它显示为
未定义

我已经读到,最好在视图上获取$scope的值,而不是通过stripeBtn函数传递它,所以理想情况下我希望这样做。希望这是有道理的

有人能解释为什么这不起作用吗

工作 HTML 不起作用 HTML
谢谢

检查以下代码。它工作得很好

var myApp=angular.module('myApp',[]);
myApp.controller('myController',函数($scope){
$scope.stripeBtn=函数(){
log($scope.shipNameFirst);
$scope.details={
recNameFirst:$scope.shipNameFirst,
recNameLast:$scope.shipNameLast,
}
}
});

带条纹结账

检查以下代码。它工作得很好

var myApp=angular.module('myApp',[]);
myApp.controller('myController',函数($scope){
$scope.stripeBtn=函数(){
log($scope.shipNameFirst);
$scope.details={
recNameFirst:$scope.shipNameFirst,
recNameLast:$scope.shipNameLast,
}
}
});

带条纹结账

wird,你能告诉我们你是如何包括控制器的吗?你在用controllerAs吗?这在指令中吗?。请记住,如果您提交时未在输入中添加任何内容,它将返回undefined。代码工作正常,您的问题可能来自应用程序的其他部分…@Keith为了确保范围丢失时是否存在任何问题,您可以尝试以下方法。将元素更改为ng model=“parent.shipNameFirst”,然后在控制器中添加下面的行,并给出try$scope.parent={};log($scope.parent.shipNameFirst);你的代码应该可以工作。请在此处发布您的全部代码,以便我们可以检查出什么地方出了问题,以及为什么您的控制器在触发
$scope.stripeBtn
函数的情况下仍会丢失其作用域。奇怪,您能告诉我们您是如何包含控制器的吗?你在用controllerAs吗?这在指令中吗?。请记住,如果您提交时未在输入中添加任何内容,它将返回undefined。代码工作正常,您的问题可能来自应用程序的其他部分…@Keith为了确保范围丢失时是否存在任何问题,您可以尝试以下方法。将元素更改为ng model=“parent.shipNameFirst”,然后在控制器中添加下面的行,并给出try$scope.parent={};log($scope.parent.shipNameFirst);你的代码应该可以工作。请将您的全部代码发布在此处,以便我们可以检查出现了什么问题,以及为什么您的控制器在触发
$scope.stripeBtn
函数的情况下仍会失去其作用域。
  <input type="text" ng-model="shipNameFirst">
  <input type="text" ng-model="shipNameLast">

  <button type="button" ng-click="stripeBtn(shipNameFirst, shipNameLast)">Checkout with Stripe</button>
  $scope.stripeBtn = function(shipNameFirst, shipNameLast){

    $scope.details = {
      recNameFirst: shipNameFirst,
      recNameLast: shipNameLast,
    }
  }
  <input type="text" ng-model="shipNameFirst">
  <input type="text" ng-model="shipNameLast">

  <button type="button" ng-click="stripeBtn()">Checkout with Stripe</button>
  $scope.stripeBtn = function(){

  console.log($scope.shipNameFirst); //logging this (with $scope) comes up as undefined

    $scope.details = {
      recNameFirst: $scope.shipNameFirst,
      recNameLast: $scope.shipNameLast,
    }
  }