私は angularjs プロジェクトに取り組んできましたが、解決できないように見える問題に直面しました。問題は、いくつかの試験を表す配列を持つコントローラーがあることです。
function ExamCtrl($scope) {
$scope.exams = [{
"title" : "Some fancy title",
"owner" : "John Smith",
"questions" : [
{"type" : "openquestion", "question" : "Is cheese yummy?", "answer" : "Yes"},
{"type" : "mcquestion", "question" : "Is cheese yummy?", "answers" : [{"a" : "Yes"}, {"b" : "No"}]}
]
}];
}
ご覧のように、いくつかの質問オブジェクトを含む試験オブジェクトに配列があります。これらの各オブジェクトには、異なるスキーマ (openquestion、mcquestion など) があります。特定の質問タイプを持つ各オブジェクトが同じスキーマを持つことを保証できます。
私が直面している問題は、各質問タイプに属する正しい HTML をレンダリングすることです。angularjs Webページのチュートリアルでは、彼らが使用しています
<li ng-repeat="question in exams.questions>{{question.type}}</li>
このアプローチの問題点は、異なる質問タイプ間で違いを作ることができないことです。私はこの問題をディレクティブで解決しようとしており、コンパイルおよびリンク機能と激しく戦ってきましたが、良い解決策を見つけることができませんでした。