0

非常に奇妙な形式 (ラジオ ボタン グループのすべての選択肢/ラベルを表す単一の文字列) で返されるデータがあります。

例:

"yes|Yes no|No"

このため、ペア オブジェクトの配列に変換する必要があります。これは、データを改行文字で分割するコントローラーの関数で行い、その配列内の各項目に対して、値とラベル属性を持つペア obj を作成し、それを配列にプッシュします。関数の最後に、最終的な配列が返されます。結果は次のようになります

[{value:"yes", label:"Yes"},{value:"no"|label:"No"}]

私のマークアップは次のようになります。

<div ng-repeat="item in function(dataObj)"></div> 

同様の問題に関する他のトピックのように、angular は同じオブジェクトが 2 回返されることを期待しているため、このエラーが発生していることはわかっています。ただし、この問題を修正する方法がわかりません。

現時点では、関数は実際には問題なく動作していますが、エラーを残したくありません..

4

1 に答える 1

3

Ng-repeat は、ダイジェスト サイクルごとに常に評価されます。つまり、関数が何度も呼び出されることになります。サイクルごとに新しいオブジェクトを作成しているため、角度が再評価され続け、説明した問題が発生します(完全な説明はこちら)。理想的には、静的データに対して常に ng-repeat を呼び出す必要があります。

$scope.data = function(dataObj);

マークアップを次のように設定します。

<div ng-repeat="item in data"></div> 
于 2013-10-16T14:37:24.937 に答える