knockoutjs контейнер меньше шаблона внутри SELECT, каждый параметр не работает с Internet Explorer
У меня есть приложение для опроса / опроса, и у меня возникают проблемы с заполнением выпадающего списка с помощью knockoutjs.
Пожалуйста, проверьте эту скрипку с Firefox (или Chrome), затем попробуйте с Internet Explorer 9 (или IE8, или IE7 ... knockout говорит, что он совместим с IE6 +, но, очевидно, IE вызывает некоторые проблемы в моем сценарии).
В Firefox и Chromeмой пример jsfiddle работает, но не с Internet Explorer. Смотри в 1-ом выпуске последний вопрос "Где ты живешь?" и на вкладке 2 «Любимый вид спорта?». Раскрывающийся список не заполняется в IE.
Я подозреваю, что что-то не работает с $ parent или $ parent.ParticipantAnswer == null не понимается IE. Я пытался отладить, но, очевидно, не нашел причину, поэтому я здесь.
И в tab1, и в tab2 параметры не заполняются, поэтому здесь приведен код, в котором эти 2 шаблона называются:
<!-- ko if: AnswerTypeId == 2 -->
<select data-bind="attr: { name: Id, id: 'answerq' + Id }">
<option value="0"></option>
<!-- ko template: { name: 'option-template', foreach: Answers } -->
<!-- /ko -->
</select>
<!-- /ko -->
<!-- ko if: AnswerTypeId == 6 -->
<select data-bind="attr: { name: Id, id: 'answerq' + Id }">
<option value="0"></option>
<!-- ko template: { name: 'location-template', foreach: Answers } -->
<!-- /ko -->
</select>
<!-- /ko -->
И вот 2 шаблона:
<script type="text/html" id="option-template">
<!-- ko if: $parent.ParticipantAnswer != null && $parent.ParticipantAnswer.AnswerId == $data.Id -->
<option data-bind="text: Description, attr: { value: Id, selected: 'selected' }"></option>
<!-- /ko -->
<!-- ko if: ($parent.ParticipantAnswer == null || $parent.ParticipantAnswer.AnswerId != $data.Id) -->
<option data-bind="text: Description, attr: { value: Id }"></option>
<!-- /ko -->
</script>
<script type="text/html" id="location-template">
<!-- ko if: $parent.ParticipantAnswer != null && $parent.ParticipantAnswer.AnswerInt == $data.Id -->
<option data-bind="text: Description, attr: { value: Id, selected: 'selected' }"></option>
<!-- /ko -->
<!-- ko if: ($parent.ParticipantAnswer == null || $parent.ParticipantAnswer.AnswerInt != $data.Id) -->
<option data-bind="text: Description, attr: { value: Id }"></option>
<!-- /ko -->
</script>
Я думал, что контейнер без шаблона создаст проблемы, ноэто jsfiddle работает как на Firefox, так и на IE.
Я действительно понятия не имею, почему он не работает с IE, я прошу здесь о действительном исправлении и, возможно, объяснении причины, чтобы мы все могли поучиться из этого;) Спасибо.