我在Angular控制器中调试一些代码时遇到问题。在我们的结帐页面上提交表单时会调用此函数。我对Angular很新,我对这个函数的内容感到有点困惑。
$scope.handleStripe = function(status, response){
PayStripe.processPayment(status, response).then(
function(successMessage){
alert('success', successMessage);
Order.recordOrder(Cart.cart.items, Auth.user.uid)
.then(function(){
PostAffiliatePro.reportSale(Cart.cart.getTotalPrice());
Cart.cart.clearItems();
$scope.mode = 'success';
});
}
);
};
以下是我认为逐行发生的事情......
1)我们声明了一个名为handleStripe
的函数,其中包含两个参数:status
和response
。
2)正在调用一个名为processPayment
的方法,该方法位于注入控制器的对象依赖项PayStripe
内。 .then
已打开,因此在调用processPayment
方法后将执行以下代码行。
3)运行参数为successMessage
的匿名函数
4)我对这里发生的事情感到困惑,因为我从未见过使用除消息之外的任何参数调用的alert
。 this page on alert
没有多大帮助
5)从对象recordOrder
调用一个名为Order
的方法,它是控制器的依赖关系
6-10)调用recordOrder
方法后,清除购物车,通过其他方法报告销售,控制器mode
中包含的scope
变量是值的更新success
。
我查看了与这些步骤相关的所有方法,我仍然有一些问题。
1)所有这些论点都传入哪里?参数是否传递给将由Angular更新的函数预先声明的参数? I.E.这些变量是Angular在进程通过队列时定义的,并且其值不是用户定义的?
2)在第4行,我理解第二个参数来自函数中定义的参数,但是alert()
函数内部这两个值的组合是什么?
3)对来自此脚本的错误的修复取决于我能够在调用$scope.mode
函数后立即将handleStripe
的值更改为不同的值,但是我已尝试插入此类在多个地方的声明似乎合乎逻辑,结果从脚本中断到完全没有发生。对我而言,放置$scope.mode = 'my-value';
的逻辑位置似乎在当前行#1和#2之间,但这会产生我之前提到的影响。
最后,我觉得我可能错过了一个整体概念,而不是摔跤语法。这个概念叫做什么,如果我错过了一个,我在哪里可以学会使用它?