0

私はAngularを初めて使用し、まだ学習しています。CMSを使用した静的HTMLの生成について多くのことを読みましたが、これをAngularモデル/スコープに変換して、さらに処理します。

今、私は次のようにng-initディレクティブでモデルの配列に値を追加しようとしています。

<div ng-init="art[0].anzahl=3">...</div>
<div ng-init="art[1].anzahl=2">...</div>
<div ng-init="art[2].anzahl=9">...</div>

しかし、それは機能しません、誰かが私のばかげた間違いを見ることができますか、それとも私がng-initをどのように使用するかについて完全に間違っていますか?

完全な例へのリンクは次のとおりです。http://jsfiddle.net/Preexo/xVUty/

事前に助けてくれてありがとう:)

4

1 に答える 1

3

を使用してデフォルト値を設定する前に、配列が最初に宣言されていることを確認する必要がありますart(コメント化されたコードのコメントを外します)ngInit。例としてこのフィドルを参照してください。

$scope.art = [
    {'anzahl': 0},
    {'anzahl': 0},
    {'anzahl': 0}        
];

$scope.addOne = function(artIndex) {
    $scope.art[artIndex].anzahl += 1;
}

更新:ここにいくつかの他のオプションがあります

1)これが理解に役立つ場合は、このフィドルのようにng-repeat、コントローラーコードでデフォルト値を使用して宣言できます。これにより、マークアップのコードが削減され、モデルの宣言がコントローラーに移動されます。コントローラーは、目的に応じてよりクリーンになります。anzahl

2)それでも使用したい場合は、このフィドルngInitのように、各アイテムをartマークアップの配列にプッシュできます。

于 2012-10-26T17:29:57.237 に答える