我是javascript的新手。
我试图理解以下代码中'outCurr'参数的值是如何设置为'USD'的,我错过了什么。我理解了其余的代码,但无法理解这一点。
该示例来自https://docs.angularjs.org/guide/concepts#model
angular.module('invoice1', [])
.controller('InvoiceController', function()
{
this.qty = 1;
this.cost = 2;
this.inCurr = 'EUR';
this.currencies = ['USD', 'EUR', 'CNY'];
this.usdToForeignRates = { USD: 1, EUR: 0.74, CNY: 6.09 };
this.total = function total(outCurr)
{
return this.convertCurrency(this.qty * this.cost, this.inCurr, outCurr);
};
this.convertCurrency = function convertCurrency(amount, inCurr, outCurr)
{
return amount * this.usdToForeignRates[outCurr] / this.usdToForeignRates[inCurr];
};
this.pay = function pay() {
window.alert("Thanks!");
};
});
我的理解是两个函数都将'outCurr'作为参数/参数,但是我看不到赋给它的任何值。如果我错过了什么,请告诉我。
答案 0 :(得分:1)
在index.html文件中,有一个ng-repeat循环显示当前货币([' USD',' EUR'' CNY' ]数组并调用total(c)函数并传递每种货币。
<b>Total:</b>
<span ng-repeat="c in invoice.currencies">
{{invoice.total(c) | currency:c}}
</span>
所以,你需要查看html文件,就像AngularJS绑定和表达式在HTML文件中一样。
希望有所帮助。
答案 1 :(得分:0)
变量&#34; outCurr&#34;调用函数后自动分配。在这里看到的代码片段中,函数convertCurr永远不会在Javascript中调用。 AngularJS的特殊之处在于它可以在HTML本身中调用这些函数。你会注意到,正如奥马尔所解释的那样,在下面的代码片段中,它会通过outCurr传递&#34;货币中的每种货币&#34;数组,从而以每种货币显示结果值。
<span ng-repeat="c in invoice.currencies">
{{invoice.total(c) | currency:c}}
</span>