ちょっと - 角度1.6のアプリで作業していますが、私は解決方法がわかりません。ここでは、セットアップの簡単な説明があります。このページは30の質問があるフォームです。クライアントからの条件ロジックは、Q1から「Yes」を選択してQ2-4を表示し、Q1が「No」ならQ5にスキップします。これは30の質問形式で繰り返されます。AngularJSで画面の表示を更新する
ユーザーがQ1で「はい」を選択してQ2-4と回答し、Q1が本当に「いいえ」であることがわかった場合、次のようなシナリオがあります。
私の質問は、1)モデルをクリアするにはどうすればいいですか? 2)ビューを更新するにはどうすればよいですか? Q2-Q4がチェックされていない/クリアされていて、ブランクであることを、3回目に判断した場合、Q1が実際にはいになるはずです。
function clearAll(arr){
arr.forEach(function(element){
if(element!==undefined){
element = null;
}
});
}
これは、モデルをクリアしますが、ビューが更新されない次のよう
1についてはは)私は、単純な」ClearAllをする方法を書きました。 Q2-4が空白/空白になるようにビューを更新するにはどうすればよいですか?
私が持っていたアイデアは、ビューを更新することですので、
$scope.$watch(myModel, function(val){
//set to null or delete?
}
しかし、配列を受け入れるのに十分な柔軟性があるので、私はこれを一般化することはできません。アドバイスをいただければ幸いです。ありがとう。私は、UI-ルーターを使用して、質問に基づいて異なる状態を解決する、すなわちstate.questions
、あなたのベースイントロページ(多分weclome質問や何かに)としてURL /questions
を持っている場合などの異なるパラメータを取ると、あなたの特定の問題については
は、それが変化検出をトリガ、または '$ scope.apply呼び出します$のscope.''への機能の割り当て() ' – Akxe
私は"コントローラとして "構文を使用しているので、私はスコープを避けることを好むでしょう。 $ scope。$ apply()を使用しても、ダイジェストサイクルに関連するエラーがスローされます。 – jrDeveloper
また、クリアするのではなく、サーバー側または送信中に条件に基づいて保存するものを決定するため、この問題は発生しません。 – Akxe