Ich versuche eine benutzerdefinierte Direktive zu erstellen, die es mir erlaubt, Fragen in der Umfrage anzuzeigen. Da ich mehrere Arten von Fragen habe, habe ich darüber nachgedacht, einzelne Direktiven zu erstellen und ihre Vorlage je nach Fragentyp zu ändern.Conti-Vorlage - Controller 'mdRadioGroup', benötigt von Direktive 'mdRadioButton', kann nicht gefunden werden
meine Richtlinie:
directive('question', function($compile) {
var combo = '<div>COMBO - {{content.text}}</div>';
var radio = [
'<div>RADIO - {{content.text}}<br/>',
'<md-radio-group layout="row" ng-model="content.answer">',
'<md-radio-button ng-repeat="a in content.answers track by $index" ng-value="a.text" class="md-primary">{{a.text}}</md-radio-button>',
'</md-radio-group>',
'</div>'
].join('');
var input = [
'<div>INPUT - {{content.text}}<br/>',
'<md-input-container>',
'<input type="text" ng-model="content.answer" aria-label="{{content.text}}" required md-maxlength="10">',
'</md-input-container>',
'</div>'
].join('');
var getTemplate = function(contentType) {
var template = '';
switch (contentType) {
case 'combo':
template = combo;
break;
case 'radio':
template = radio;
break;
case 'input':
template = input;
break;
}
return template;
}
var linker = function(scope, element, attrs) {
scope.$watch('content', function() {
element.html(getTemplate(scope.content.type))
$compile(element.contents())(scope);
});
}
return {
//require: ['^^?mdRadioGroup','^^?mdRadioButton'],
restrict: "E",
link: linker,
scope: {
content: '='
}
};
})
In meinem Haupt-Controller habe ich Liste von Fragen und nach Button Ich gründe aktuelle Frage, die zuweisen meiner Richtlinie ist.
Alles funktioniert für erste Fragen in Ordnung, aber nachdem ich aktuelle Frage an Radio Typen eingestellt bekomme ich diesen Fehler:
Error: [$compile:ctreq] Controller 'mdRadioGroup', required by directive 'mdRadioButton', can't be found!
ich required
meine Direktive hinzugefügt, wie unten habe versucht, aber es kann nicht geholfen hat .
Ich kann nicht herausfinden, was los ist, weil ich noch zu eckig bin.
Ich habe Plunker erstellt mein Problem zu zeigen: http://plnkr.co/edit/t0HJY51Mxg3wvvWrBQgv?p=preview
Schritte um diesen Fehler zu reproduzieren:
- öffnen Plunker
- Klicken Sie
Next
Taste zweimal (navigieren Frage 3) - Siehe Fehler in der Konsole
EDIT:
Ich habe meinen Plunker bearbeitet, damit mein Fragenmodell sichtbar ist. Ich bin in der Lage, Antworten auszuwählen, auch in Fragen, die Fehler-Fragen-Modell zu aktualisieren ist. Aber immer noch bekomme ich Fehler, wenn ich zu Frage 3 gehe.
Vielen Dank für diesen Vorschlag, aber könnten Sie mir auch helfen, Fehler zu entfernen, die ich gerade bekomme? – Misiu
Das ist eine gute Frage. Der erste, den ich bemerkte, ist, dass du kein ng-Modell auf deiner 'md-radio-group' hast. – Iamisti
Ich habe' ng-model' hinzugefügt, aber es hat nicht geholfen. – Misiu