2016-01-27 2 views
3

У меня есть следующий объект:угловая форма устанавливается величина, равная выражение

$scope.module.discount = [{ 
      licences: 0, 
      discountPercentage: 0, 
      new_value_pr_licence: 0 
     }] 

И следующий простой вид:

<div class="form-group"> 
    <label>Pris pr licens</label> 
    <div class="input-group m-b"> 
     <input type="number" class="form-control" ng-model="module.price_pr_licence"> 
     <span class="input-group-addon">Kr</span> 
    </div> 
</div> 
<div class="col-xs-12"> 
    <table> 
     <thead> 
     <th>Licenser</th> 
     <th>% rabat</th> 
     <th>Ny pris pr stk</th> 
     </thead> 
     <tbody> 
     <tr ng-repeat="discount in module.discount"> 
      <td> 
       <input class="form-control" ng-model="discount.licences" type="number" required=""> 
      </td> 
      <td> 
       <input class="form-control" type="number" ng-model="discount.discountPercentage" required=""> 
      </td> 

      <td> 
       <button class="btn btn-sm btn-default">{{module.price_pr_licence * (1-(discount.discountPercentage/100))}}</button> 
      </td> 
     </tr> 
     </tbody> 
    </table> 
</div> 

AS вы можете увидеть значение этой кнопки выражение:

{{module.price_pr_licence * (1-(discount.discountPercentage/100))}} 

Сейчас я хочу установить:

discount.new_value_pr_licence = module.price_pr_licence * (1-(discount.discountPercentage/100)) 

Однако я не совсем уверен, как это сделать.

Как вы привязываете переменную к такому выражению?

+0

Установите его, когда? На кнопке нажмите? Вы можете сделать это, если это так: ng-click = "discount.new_value_pr_licence = module.price_pr_licence * (1- (discount.discountPercentage/100))" – BBauer42

+0

@ BBauer42 Кнопка не нажимается (я знаю, что это непонятно) но в основном при изменении выражения значение скидки должно быть установлено –

ответ

1

вы можете пойти с вычисленной собственностью (через аксессор), чтобы держать вещи в чистоте, а также выражение парсера запасного ANGULAR, что не поддерживает полные дерева выражений JS ..

$scope.module.discount = [{ 
      licences: 0, 
      discountPercentage: 0, 
      new_value_pr_licence: 0, 
      get discountedPrice() { 
       return ($scope.module.someValue + this.someOtherValue/100) 
      } 
     }] 

Тогда позже вы просто ссылаться на этом в

{{discount.discountedPrice}} 

Fiddle:

Fiddle

+0

спасибо за ваш ответ. Будет ли это установить переменную равную ей или просто отобразить результат выражения? Мне нужно значение, которое нужно установить, поскольку im отправляет его в мой API, используя HTTP –

+0

на переменной, которую вы имеете в виду? - он не устанавливает какое-либо поле/переменную anythig - он просто читает их на месте, но вы будете воспринимать это как поле, устанавливаемое на правильное значение –

+0

да, я имею в виду поле. :) –

Смежные вопросы