1

$digest の反復回数が 10 回に達したというエラーが表示されます。this oneのような他の質問は、それを繰り返しながら変数を変更しているためだと教えてくれます。問題は、それを行うのに本当に役立つインターフェイスを作成していることです。私のコードは現在このようになっています。

<div ng-repeat="(index, trigger) in triggers" ng-click="select(index)">
    <strong ng-bind="trigger.name></strong>
    <div ng-show="selected == index" class="span12">
        <h5>edit properties</h5>
        <div ng-repeat="property in getTriggerProps(trigger.type) ">
        <div ng-bind="property.name"></div>
        <div ng-switch on="property.name">
            <input type="text" ng-switch-when="'text'" ng-model="trigger[property.name]">
            <select type="select" ng-switch-when="'select'" ng-model="trigger[property.name]" ng-options="possible for possible in property.options">
            </select>
        </div>
    </div>              </div>
</div>

私の実際のコードには、Twitter ブートストラップ関連の div とクラスがもっとたくさんありますが、わかりやすくするために省略しています。

したがって、これが行うことは、トリガーという名前のコレクションを反復処理することです。トリガーにはさまざまな種類があり、これらのトリガーのプロパティは、`getTriggerProps というスコープの関数によって返されます。

返されるプロパティのリストについては、プロパティ タイプに基づいて一連の入力を作成します。プロパティのモデルは、トリガー オブジェクトの実際のプロパティになります。しかし、それが私が抱えていると思う問題です。このトリガーが含まれているコレクションを反復処理しながら、トリガーのプロパティを変更しています。

私はAngularjs 1.1.5を使用していますが、これは不安定なバージョンであることを認識していますが、その機能を試してみたかったのです。

私が取り組んでいるページ全体を見ることが役立つ場合は、ここに公開リンクがあります: https://dl.dropboxusercontent.com/u/12041395/neurobot_interface_proposal.html

4

1 に答える 1

1

したがって、繰り返し処理するオブジェクトを変更しても問題ありません。ng-repeat の仕組みは、オブジェクトにhashKey一意の ID のようなタグを付けて、それらが同じインスタンスであることを認識します。プロパティを追加するだけでは、それは壊れません。

あなたの問題は、新しく作成されたオブジェクトを繰り返し処理していることだと思いますか? 何が起こるかはわかりませんgetTriggerPropsが、呼び出しごとに新しいオブジェクトを作成すると、確実に壊れます。その場合、解決策はhashKeyそれぞれに独自のプロパティを追加することです。これは、オブジェクトが概念的に同じであれば、毎回同じになります。

プロパティは、nameおそらくハッシュ キーとして使用するのに適しています。

于 2013-06-28T06:09:53.477 に答える