2015-05-13 1 views
0

У меня есть приложение MEANJS с модулем CRUD стран. Когда я нажимаю на страну из списка списка по умолчанию, она приводит меня в view-country.client.view. Я добавил поле в свою модель для кода валюты. Когда я нажимаю на страну, она приведет меня на страницу, где я хочу, чтобы она повысила обменный курс с json, сопоставляя поле валютного кода модели Страны с моими данными из импорта json.AngularJS + MEANJS - Использовать свойство объектной модели в качестве ключа массива для фильтра

//view-country.client.view 

<section data-ng-controller="CountriesController" data-ng-init="findRate()"> 
<div class="col-lg-3 col-md-6 col-sm-12"> 
    <div class="panel panel-dark"> 
     <div class="panel-heading">Currency</div> 
     <div class="panel-body"> 
     {{country.currencycode}} 
      <p>The exchange rate is {{exchangeRates.rates['AFN']}} 
      </div> 
     </div> 
    </div> 
</section> 





//findRate() for data-ng-init in CountriesController 

$scope.findRate = function() { 

      $scope.country = Countries.get({ 
        countryId: $stateParams.countryId 
       }); 

      $http.get('http://localhost:3000/rates.json'). 
      success(function(data) { 
       $scope.exchangeRates = data   
      }); 
     }; 

Все работает с импортом JSON и если я включаю COUNTRYCODE (в данном примере «AFN» для Афганистана), он возвращает правильную скорость. {{Country.currencycode}} возвращает AFN из моего MongoDB, но если я попытаюсь внедрить {{country.currencycode}}, где «AFN», это не сработает. Я пробовал смотреть на фильтры, но я не могу заставить их работать. В принципе, в любое время, когда я нажимаю на страну, я хочу, чтобы она показывала только ставку для этой страны, используя свойство модели как строку для получения правильного объекта из моего массива. Я весь день в форумах и не могу понять это. Заранее спасибо.

+0

Если я правильно понял, вы не хотите, чтобы «AFG» был жестко закодирован здесь: {{exchangeRates.rates ['AFN']}}? Если это так, вы пробовали {{exchangeRates.rates [country.currencycode]}}? –

+0

Ничего себе, у меня был ['country.currencycode'], но он никогда не пробовал его без «попытки попробовать много других комбинаций», что смущало надзор. Вы были правы - это сработало, как вы предложили. Сообщение как ответ, и я соглашусь! Спасибо! – stvnmcdonald

ответ

0

Если я правильно понял, вы не хотите, чтобы «AFG» был жестко закодирован здесь?

{{exchangeRates.rates['AFN']}} 

Если это так, вы это пробовали?

{{exchangeRates.rates[country.currencycode]}} 
Смежные вопросы