AngularJS - динамическое изменение выражения

0

Мне нужно будет отображать разные цены для одного и того же элемента в зависимости от выбранной вами валюты (разные цены уже предоставлены из бэкэнд, поэтому нет необходимости в дальнейшем преобразовании). Я хотел бы изменить выражение с помощью ng-click

Мой html выглядит следующим образом:

<div ng-controller="myCtrl">
  you have, {{exchange.[currency]}}...
  <br>
  <br>
  <select>
    <option ngclick="currency='USD'">USD</option>
    <option ngclick="currency='Eur'">Eur</option>
  </select>
</div>

И мой контроллер:

var app = angular.module('myApp', []);
  // controller here
app.controller('myCtrl', function($scope) {

    $scope.currency = "USD";

    $scope.exchange = [{
      "USD": 199,
      "Eur": 20
    }]; 
  })

Вы можете проверить код выше в JSfiddle здесь

  • 1
    удалить точку во второй строке html {{exchange. [currency]}} должно быть {{exchange [currency]}}
Теги:

1 ответ

1
Лучший ответ

Вот как вы могли бы сделать это по Угловому пути.

HTML:

<div ng-controller="myCtrl">
  you have, {{currency.rate}} {{currency.code}}
  <br>
  <br>
  <select ng-options="currency.code for currency in exchange" ng-model="currency"></select>
</div>

контроллер

var app = angular.module('myApp', []);
  // controller here
app.controller('myCtrl', function($scope) {
    $scope.exchange = [{
      "code": "USD",
      "rate": 199
    },
    {
      "code": "EUR",
      "rate": 20
    }]; 
    $scope.currency = $scope.exchange[0];
  })
  • 0
    JSFiddle здесь
  • 0
    Это было именно то, что я искал. Большое спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню