1

Я новичок в Angular и пробовал небольшие образцы, чтобы узнать код. Во-первых, я хотел бы поблагодарить блестящие решения, размещенные в stackoverflow.com. Сохранял меня столько часов, сколько раз от ненужной отладки!AngularJS: Превращение дочерней директивы в родительскую директиву

Я строю простой компонент разрыва расширителя. Код для которого был доступен в угловой js ebook.

Я создал плунжер для того же http://plnkr.co/edit/f2u32x2w0FJK1AzvVPEx?p=preview Компонент отлично работает. за то, что в IE 8, я получаю следующее сообщение об ошибке: За исключением

TypeError: Object doesn't support this property or methodundefined

компонент делает хорошо. Но эта ошибка всегда возникает вместе с ней.

Оказывается, что виновником является линия:

<expander class='expander' ng-repeat='expander in expanders' expander-title='expander.title'>{{expander.text}}</expander> 

и, в частности часть:

{{}} expander.text

Может кто-нибудь сказать мне, что я Я здесь делаю неправильно? Я просто передаю содержание дочерней директивы в свой шаблон. Затем я переношу ребенка в родителя. В чем проблема? :(

+0

Эй, @Jim, несколько несвязанная проблема, но переключение в ваш плунк ломается, когда я переключаюсь на Angular version 1.2.x. Я не уверен, что в [this changelist] (https://docs.angularjs.org/guide/migration) сломал его, но если вы знаете и можете сообщить мне, что это было бы здорово! – JaKXz

ответ

1

Проблема заключается в использовании пользовательского HTML-элемента (<expander>), который IE не распознает. Используйте либо нотацию атрибута для поддерживаемого элемента (например, <div expander>...</div>), либо в JavaScript, создайте элемент, чтобы IE распознает его:

document.createElement('expander'); 

Ссылки

  1. AngularJS: Internet Explorer Compatibility
+0

Hi Andre, Спасибо за ответ. Та же ссылка упомянул включить следующее, если были созданы пользовательские элементы: Я сразу сделал то же самое тоже .. Но, я все еще получаю ошибку :( – Jim

1

Ну, вы можете подумать о включении jQuery «full blown» для IE8 прямо перед Angular-script. Это устраняет ошибку до тех пор, пока проблема не будет устранена в самом AJS/jQLite ...

Примечание: возьмите только jQuery < 2.0, так как 2.0+ не совместимы с IE8.

+0

Это лучшее решение Fixed МОЕЙ точно такую ​​же проблему +1 '<-..! [Если Ге IE 8]> <сценарий SRC = "http://code.jquery.com/jquery-1.11.0.min.js"> ' –

Смежные вопросы