1
ng-repeatの入力フィールドの合計を計算しようとしています。 ng-repeatを使用して各行を動的に表示し、その合計を表示する簡単な方法はありますか?ng-repeat入力フィールドの合計を計算するAngularJS
ありがとうございました!ほんとうにありがとう!
HTML
<div class="row">
<div class="small-12">
<div class="outreach-bar">
<div class="outreach-bar__headline"><h1><span class="icon-pie-chart"></span>Current Total - $<span class="js-form--outreach__step-total">0</span></h1></div>
<div class="outreach-bar__section-wrap outreach-bar__progress">
</div><!--/.outreach-bar__section-wrap -->
</div><!--/.outreach-bar -->
</div><!--/.col -->
</div><!--/.row -->
<div class="carousel--outreach__title"><h1>Step 1 - Home</h1></div>
<div class="form--outreach" ng-controller="AddController">
<div class="row">
<div class="small-12 columns">
<div class="form--outreach__step-title">Current Total - $<span class="js-form--outreach__step-total">0</span></div>
<div class="form--outreach__step-intro">Enter your monthly home expenses below to see how much you spend each month.</div>
</div><!--/.col -->
</div><!--/.row-->
<div class="row" >
<div class="small-6 columns">
<div class="form--outreach__input-label">Mortgage/Rent</div>
<input type="number" class="form--outreach__input js-form--outreach__input" placeholder="Enter Amount"/>
</div><!--/ .col -->
<div class="small-6 columns">
<div class="form--outreach__input-label">Mortgage/Rent</div>
<input type="number" class="form--outreach__input js-form--outreach__input" placeholder="Enter Amount"/>
</div><!--/ .col -->
</div><!--/ .row -->
<div class="row" ng-repeat="rowContent in rows">
<div class="small-6 columns">
<div class="form--outreach__input-label">Mortgage/Rent</div>
<input type="number" class="form--outreach__input js-form--outreach__input" placeholder="Enter Amount"/>
</div><!--/ .col -->
</div><!--/ .row -->
<div class="row">
<div class="small-12 columns">
<div class="form--outreach__add-wrap">
<a class="form--outreach__add-plus" ng-click="addRow()"></a>
<h2>Add Items</h2>
</div><!-- form--outreach__add-wrap -->
</div><!--/.col -->
</div><!--/.row-->
</div><!--/ .form--outreach -->
</div><!--/.carousel--outreach__step -->
[...]
$(document).on('ready', function() {
$('input.js-form--outreach__input').on('input', function(){
var sum=0;
$('input.js-form--outreach__input').each(function(){
if($(this).val() != "")
sum += parseInt($(this).val());
});
$('.js-form--outreach__step-total').html(sum);
});// end of sum functionality
});
var app = angular.module('OutreachCarousel', []);
app.controller('AddController', ['$scope', function ($scope) {
$scope.rows = ['Row'];
$scope.counter = 1;
$scope.addRow = function() {
$scope.rows.push('Row' + $scope.counter);
$scope.counter++;
}
}]);// end of add row functionality
ありがとう@miquelarranz。私は、ng-repeatで各費用項目(住宅ローン/賃貸料)を動的に追加する方法があるかどうかと、総費用のすべての費用項目の合計を追加するかどうか疑問に思っていました。今は機能していますが、[項目を追加]をクリックしたときに新しい費用項目を追加すると、これらの新しい費用項目の値は合計に加算されません。これは理にかなっていますか? – tiffsaw
あなたはJQueryでそれを計算しているので、ロードされたときにJQueryコードが実行されているため、これはうまくいかないと思います。私が上に書いたように、なぜあなたのコントローラーの中で合計をやっていないのですか? ng-repeatを使用して行を表示する場合は、行情報を持つ配列を持っていなければならず、ng-repeat = "row in row"を使用する必要があります。行の例は、[{名前: '行1'、金額:123}、{名前: '行2}、金額:321]です。そして、各行に、名前と値、または表示したいものを表示します。 – miquelarranz