如何设置Argument值 - Javascript

时间:2014-11-09 04:22:17

标签: javascript angularjs

我是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'作为参数/参数,但是我看不到赋给它的任何值。如果我错过了什么,请告诉我。

2 个答案:

答案 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>