将值传递给服务中的对象中的方法,然后将响应传递给同一对象

时间:2017-08-22 11:57:02

标签: javascript angularjs object parameter-passing

因为标题说我将视图中的值从控制器传递到myService中的方法,该方法在同一对象中触发其他方法。

所以这个变量的方式是

view - >控制器 - >服务 - > method2 - >方法1

HTML

<select id="final_price_currency"
    ng-model="selectedCurrency"
    ng-change="currencySelect.fireCurrencyChanger()">
        <option ng-repeat="n in currencySelect.availableOptions" value="{{n.name}}">{{n.name}}</option>
</select>

控制器:

$scope.currencySelect = {
    availableOptions: [
        {name: 'USD'},
        {name: 'EUR'},
        {name: 'GBP'},
        {name: 'CHF'},
        {name: 'PLN'}
    ],
    fireCurrencyChanger: function() {
        var priceField = $scope.price;
        var selectedCurrency = $scope.selectedCurrency;
        currencyConverterService.currencyConverter.convertMoney(selectedCurrency,priceField);
    }
}

服务中的方法2(刚刚开始):

// parameters are also used in convertMoney
convertMoney: function(selectedCurrency,priceField) {
    this.getRatio(selectedCurrency);

服务中的Method1(刚刚开始):

getRatio: function(selectedCurrency) {
    var selectedCurrency = this.selectedCurrency ;
    $http({
        url: 'http://api.fixer.io/latest?base='+selectedCurrency +'&symbols=PLN,CHF,EUR,USD,GBP',
        method: 'GET'
    })
    .then(function(response) {
        var currentCurrency = {
            toPLN:  response.data.rates.PLN,
            toCHF:  response.data.rates.CHF,
            toEUR:  response.data.rates.EUR,
            toUSD:  response.data.rates.USD,
            toGBP:  response.data.rates.GBP
        }

正如您在获得当前货币的成功电话中看到的那样,我创建了另一个对象,该对象存储了未来计算的汇率 Method2

问题:

  • 如何将在Method1中成功调用时创建的此对象传递给Method2?
  • 是我在前端做这种货币兑换器的逻辑吗?
  • 我是否已经犯过一些错误?

注意:

我知道它根本不安全。它只适用于前端使用。

0 个答案:

没有答案
相关问题