私は自分のアプリケーションのangularJS ontopを使用しています。AngularJSリストの動的合計
私は、コントローラの基本的な例があります:私のHTMLは次のようになります
function OrderListCtrl($scope, $http) {
$http.get('/static/angular/app/phones/van1.json').success(function(data) {
$scope.van1 = data;
});
$http.get('/static/angular/app/phones/van2.json').success(function(data) {
$scope.van2 = data;
});
}
とサンプルJSONエントリ
{
"id": "3",
"custName": "Mrs Smith",
"accountNumber": "416",
"orderNumber": "12348",
"orderWeight": "120.20"
},
を:
<div id=1>
<h1>Van 1 - Total Weight = XXX </h1>
<ul class="sortdrag">
<li ng-repeat="van1 in van1" id="[[ van1.id ]]">
[[van1.custName]] [[van1.accountNumber]] [[van1.orderWeight]]
</li>
</ul>
</div>
さて、私はul内のすべてのli項目の総重量。
これは静的なリストですが、リストはjQuery-uiを使用していて、liアイテムがドラッグされて各リストの間にドロップされる複数のリストがある場合は簡単です。私の質問は、ulの各liのすべての重みの値に動的にXXXを動的に更新させるにはどうすればいいのですか?
実際にはonDropイベントを使用したくはありません。これは事前に設定されたリストでは機能しないため、理想的にはulのすべてのvan1.orderWeight値から値を取得するコードを使用したいと思います。
これに最も効果的なアプローチは何ですか?そして、私がjinja2テンプレートを使用しているので、{{と}}ではなく[[と]]を使って誰かに尋ねる前に。
UPDATE:以下の答えを読んだ後に元のコントローラを修正しました[OK]を
:
function OrderListCtrl($scope, $http) {
$http.get('/static/angular/app/phones/van1.json').success(function(data) {
$scope.van1 = data;
// This part is easy, calcuate the sum of all weights from the JSON data
$scope.sumV1 = _.reduce(_.pluck($scope.van1, 'orderWeight'), function (m, w) {return m + w}, 0);
});
$scope.getVan1Weight = function(){
// here I try and write a function to calculate the dynamic weight
// of a van, which will update when items get dropped in/out of the ul
_.reduce(_.pluck($scope.van1, 'orderWeight'), function (m, w) {return m + w}, 0);
}
そして、私のテンプレート
<div id="app" ng-controller="OrderListCtrl">
<div id=1>
<h1>Van 1 - Total Weight = [[getVan1Weight()]]
Starting Weight - [[sumV1]]</h1>
<ul class="sortdrag">
<li ng-repeat="van1 in van1" id="[[ van1.id ]]">
[[van1.custName]] [[van1.accountNumber]] [[van1.orderWeight]]
</li>
</ul>
</div>
今すぐ実行を支援するunderscorejs libaryを使用してイム計算は、私は最初のデータを使用してこれを動作させるように見えるだけで、新しいオーダーが別のulからドラッグされたときには更新されません
こんにちは@ganaraj、私は私の新しいコードでオリジナルの投稿を更新しました、私はまだ私のul – Crooksey
に落とされて新しい項目で動作するようにこれを得ることができますあなたは達成しようとしているとplunkrやフィドルを作成することはできますか?私はおそらくそのコードを修正することであなたを助けることができます。また、van1ではvan1をやってはいけません(van1ではvanを、van1ではitem)。その誤解を招き、おそらく多くの混乱を招くでしょう。 – ganaraj
try http://plnkr.co/edit/x8EPgfk6kyHWRQTIFbN9またはhttp://embed.plnkr.co/x8EPgfk6kyHWRQTIFbN9/Preview乾杯。 – Crooksey