2016-01-27 42 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

您可以用計算出的屬性(通過訪問),以保持乾淨的東西,也並不支持全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

+0

謝謝你的迴應。這會設置變量等於它還是隻顯示錶達式的結果?我需要設置的值,因爲即時通訊發送到我的API使用HTTP –

+0

變量你的意思字段? - 它不會將任何字段/變量設置爲anythig - 它只是當場讀取它們,但您會將其視爲設置爲正確值的字段 –

+0

是的,我的意思是字段。 :) –