2014-12-08 8 views
0

У меня есть настраиваемая директива (для exposecertain полей), а внутри у меня есть другая директива (выпадающее поле для поля). Он хорошо работает на Chrome, но на IE9 появляется ng-show и ng-if не оценивает. Кажется, что я даже не ввел определенную функцию (я помещаю console.log внутри функции isAllowed и появляется в Chrome, но не в IE9).Пользовательская директива внутри директивы не работает в IE9

<div> 
    <select id="" class="form-control" ng-model="measure" name="{{name}}"> 
     <option ng-if="isAllowed(name, 1)" value="1">Kilowatt Hours</option> 
     <option ng-if="isAllowed(name, 2)" value="2">mmBTU</option> 
     <option ng-if="isAllowed(name, 3)" value="3">Therms</option> 
     <option ng-if="isAllowed(name, 4)" value="4">Decatherms</option> 
    </select> 
</div> 

Я попытался ng-show вместо ng-if и ведет себя так же в IE9. Похоже replace: true я ставлю на моей первой директивы не оплачено в IE9:

replacement does not appear to work

Если в Chrome это заменяется, как ожидается, с окружающими DIV элементы и мои собственные директивы не могут рассматриваться в любом месте, и это хорошо.

У кого-нибудь был опыт этого раньше? Связано ли это с директивой внутри директивы? Кажется, что IE9 делает первый ОК, а затем останавливается.

(Я бы хотел сбросить IE9, но это внутреннее приложение, и они все еще находятся на IE9 везде, поэтому мне нужно как-то заставить его работать).

PS: Цель здесь - показать только параметры, относящиеся к данному полю. В этом случае электричество может измеряться в кВтч и ммBTU, но не в темах и декантрамах. Внутри функции isAllowed должна быть некоторая логика switch. Он отлично работает в Chrome, а не в IE9, поэтому мне может понадобиться другой метод в качестве обходного пути.

PPS: Угловой 1.3.2. IE9 - Режим браузера: IE9, Режим документа: стандарты IE9.

+0

Существует целый раздел в угловых документах об поддержке IE, я предлагаю вам прочитать его, потому что он определяет, как настраиваемые узлы DOM необходимо добавить перед рукой !!! –

+0

Прочтите. Эта часть предназначена для того, чтобы сделать IE8 и ниже счастливым. IE9, похоже, не уважает замену, но, похоже, обрабатывает пользовательские директивы. –

ответ

0

Выяснил это. Изолированный объем. Как-то Хром имел дело с этим нормально, но IE9 не было.

В моем приложении у меня есть поля, которые я хочу показать своему пользователю, определенному в модуле Partials, но выпадающие списки - это то, что я хочу использовать в нескольких местах, и они могут меняться, поэтому я определил их в директива называется BusinessRulesDirectives.

Все, что мне нужно было сделать, это отбросить в BusinessRulesDirectives в качестве зависимости от моего модуля Partials, и он работает как в Chrome, так и в IE9.

angular.module('ActualsPartials', [ 
    'BusinessRulesDirectives' 
]) 

По какой-то причине Chrome был в состоянии работать нормально с этим, но IE9 не понравилось:

angular.module('ActualsPartials', []) 

Кроме того, никакие ошибки не были выходные. Мне просто пришлось дважды проверять выделенную область как дикое предположение.

Было бы интересно узнать, почему Chrome был в порядке, но IE9 не был.

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