6

Korzystanie z akordeonu ładowania początkowego Angular-UI w IE8 zakładki nie rozwijają się. Oto błąd, który otrzymuję używając IE 8's F12kątowa IE8 akordeon

Error: Unexpected call to method or property access.undefined 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 
Error: No controller: accordion<div class="accordion-group ng-scope" ng-repeat="c in categories" heading="{{c.Name}}"> 

Czy ktoś miał podobny problem i był w stanie go rozwiązać?

+0

Czy możemy zobaczyć Twój kod lub czy możesz odtworzyć problem na jsfiddle lub plunker? – Galdo

+0

Jasne, oto, co udało mi się wydobyć ... nadal mając ten sam problem, ale mniej oczekiwanych kart akordeonowych http://loganweilenman.com/accordion-test/test-accordion.html –

+0

Zobacz rozwiązanie tutaj: http://stackoverflow.com/questions/15590746/angularjs-error-excertain-call-to-method-lub-property-access-undefined-only –

Odpowiedz

6

Wygląda na to, że głównym problemem był IE nie podoba <accordion> wykorzystywane <div accordion></div> zamiast

1

Innym gotchya że właśnie napotkał to, że nie można umieścić NG-kontrolera na tym samym elemencie jako <div accordion> w IE8. Zajęło mi to wiele tropów i błędów, by to rozgryźć.

musiałem zastąpić

<div accordion ng-controller="MyCtrl"> 
    ... 
</div> 

z

<div ng-controller="MyCtrl"> 
    <div accordion> 
     ... 
    </div> 
</div> 
4

IE8 nie rozpozna niestandardowe elementy. Jeśli chcesz użyć dyrektywy accordion jako elementu zamiast atrybutu, musisz zdefiniować element, aby program IE nie składał reklamacji. Ten prosty skrypt wystarczy.

<script type="text/javascript"> 
    document.createElement('accordion'); 
    document.createElement('accordion-group'); 
    document.createElement('accordion-heading'); 
</script> 

W przeciwnym razie wystarczy użyć dyrektywy w jej formie atrybutu.