2015-10-27 10 views
7

Jakie są różnice między używaniem document i $document podczas opracowywania aplikacji Angular? Przeczytałem, że lepiej używać odpowiedników kątowych, takich jak: $window zamiast window lub $timeout zamiast setTimeout.

Ale ... dlaczego? Myślałem, że window, setTimeout i document są szybsze, ponieważ są natywne i nie muszą przechodzić przez kod Angular Framework.

Czy lepiej używać odpowiedników Angular zamiast funkcji natywnych, obiektów z JS?

+0

Absolutnie się z tobą zgadzam. Tak natywny kod jest szybszy, ale rozumiem, że nowy programista kątowy może nie rozumieć natywnego kodu. Dlatego prawdopodobnie. Ale zastanawiam się, dlaczego (lub dokładnie w jaki sposób) ludzie uczą się Angular, nie wiedząc, co dzieje się w natywnym kodzie? –

+0

Zobacz, co dokumentacja angularJS stwierdza: Opakowanie jQuery lub jqLite dla obiektu window.document przeglądarki. –

+0

https://coderwall.com/p/udpmtq/angularjs-use-timeout-not-settimeout to pomoże ci –

Odpowiedz

0

Po jest zawsze prawdziwe: $ window.document === $ dokument [0]

5

$document jest obiektem jQuery (zasadniczo $(document)).

Więc w zasadzie powinien być w stanie zrobić:

$document[0].property = document.property 

Możesz zajrzeć this dla przykładu.

6

Korzystając z usług kątowych dla $ document i $ window, przygotowujesz test jednostki kodu. Ten wtrysk zależności pozwala na użycie fałszywych wersji $ document lub $ window w testach.

Wymieniony wpływ na wydajność można zignorować.

0

Należy użyć kątowych wrapers, BCU nie złamać kątową synchronizację z model-> widzenia

Dla exmaple, jeśli używasz setTimeout trzeba będzie $ strawienia() zakres odświeżyć wartości w widoku, jeśli planujesz zmienić niektóre wartości modelu, z drugiej strony, jeśli użyjesz $ timeout, nie musisz tego robić, to zakres zostanie odświeżony po zakończeniu funkcji

Powiązane problemy