予期しない Angular の動作に遭遇しました。この投稿の目的は、これがバグなのか意図されたものなのか、そして意図された理由を説明することです。
まず、この Plunkr を参照してください: http://plnkr.co/edit/CB7k9r?p=preview。この例では、3 つのオブジェクト エントリを持つ array という配列を作成しました。さらに、入力フィールド (トグルと呼ばれる) の内容に基づいて ng-switch を作成しました。toggle の値が 1 の場合、配列内のオブジェクトのすべての名前を "1" で始まるか、それ以外の場合は "other" で始まるように出力する必要があります。
これは意図したとおりに機能せず、エラーが表示されます。
Error: Argument '?' is required at assertArg
ただし、同じ例を書き直して ( http://plnkr.co/edit/68Mfux?p=preview )、リストの周りに追加の div を追加し、ng-switch をこの div に移動し、ng-switch-when を li から に移動しました。 ul (ng-repeat と ng-switch-when を分離する) は意図したとおりに機能します。
誰かがこれがなぜなのか説明できますか?