7

W moim pliku HTML Mam <progress> tag i również wstrzykuje zależność ui.bootstrap do mojego kontrolera następująco:ui.bootstrap odkształca tag <progress> HTML

var myApp = angular.module("myApp",["ui.bootstrap"]); 

W tej konfiguracji angularjs przekształca <progress></progress> na:

<div class="progress ng-isolate-scope" ng-transclude=""></div> 

Po usunięciu "ui.bootstrap" działa dobrze. Możesz grać z próbką JSFiddle this.

Po przekształceniu progress w <div class="progress ng-isolate-scope" ng-transclude=""></div> znika. Rozumiem, że istnieje dyrektywa o nazwie progress w pliku ui.bootstrap, która dokonuje tej konwersji.

Jak zatem ustawić ten pasek postępu? Lub w jaki sposób mogę wyłączyć dyrektywę kątową-ui bez usuwania zależności?

Z góry dziękuję.

Odpowiedz

0

Nie jestem pewien, czy rozumiem Twoje pytanie lub używaną wersję uiBootstrap.

Dyrektywa powinna być:

<div ng-controller="MainCtrl"> 
     <progressbar value="55"></progressbar> 
</div> 

Zmieniłem wersję uiBootstrap i zawiera niezbędne bootstrap.min.css w ten rozwidlony Fiddle i wszystko wydaje się działać poprawnie. (spójrz na zasoby zewnętrzne)

+4

Uhh, teraz rozumiem. Masz natywny znacznik postępu HTML na twojej stronie i jest on nadpisywany/niszczony przez dyrektywę ui progressbar, która składa się z paska poleceń, postępu i paska poleceń. https://github.com/angular-ui/bootstrap/blob/master/src/progressbar/progressbar.js Zrobiłbym to jako błąd w ui-bootstrap. Dyrektywy niestandardowe powinny mieć inną nazwę niż tagi rodzime. Obawiam się, że można to naprawić tylko zmieniając źródło interfejsu i odpowiednie szablony. Proszę zignoruj ​​moją nieśmiałą odpowiedź. – mainguy

4

Po prostu wpadłem na ten sam problem. Prostym sposobem obejścia tego problemu jest użycie polecenia ng-nie-bindable, które jest standardową dyrektywą angualr. Wadą jest to, że nie można używać żadnych dyrektyw kątowych ani wiązań w ramach elementu postępu.

<progress ng-non-bindable></progress>