Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [angularjs] minimalizacja kodu angulara z gulp-uglify
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
tzm
taki temat.. od jakiegos czasu dosc mocno zaczalem sobie automatyzowac prace z gulpem i masa jego udogodnien, dzis mi padlo pisanie pierwszej po dluzszej przerwie aplikacji w angularze i trafilem na problem ktory objawial sie zmiana zmiennej globalej $scope, na ' t ', przez co wszystkie prowajdery krzyczaly ze nie wiedza o co chodzi a google za bardzo pomoc nie mogl. spotkaliscie sie z jakas bezpieczna biblioteka do gulpa ktora nie rusza kodu angulara albo zwyczajnie potrafi rozpoznac co jest systemowe a co nie? troche to pieprzy koncepcje minimalizowania kodu jesli 80% aplikacji jakie tworze stoi angularem a wiadomo ze to dosc pomocny zabieg dla seo. sugestie za piwo?
markuz
[JAVASCRIPT] pobierz, plaintext
  1. function PhoneListCtrl($scope, $http) {...}
  2. phonecatApp.controller('PhoneListCtrl', ['$scope', '$http', PhoneListCtrl]);
[JAVASCRIPT] pobierz, plaintext


Źródło: https://docs.angularjs.org/tutorial/step_05

Stringów Ci nie zmodyfikuje.
tzm
  1. app.controller('categoryController', function($scope, $http){
  2.  
  3. $scope.productList = {};
  4. });


wyplulo mi cos takiego:

  1. app.controller('categoryController', function(t,c){t.productList={};});


tylko ze angular nie zna zmiennej globalnej t.

kumasz juz?
markuz
Tak. Dlatego musisz zrobić tak jak Ci napisałem:

[JAVASCRIPT] pobierz, plaintext
  1. var categoryController = function($scope, $http) {};
  2. app.controller('categoryController', ['$scope', '$http', categoryController]);
[JAVASCRIPT] pobierz, plaintext


Wtedy Angular wie nawet jak zmienisz $scope na costam, że pierwszy parametr to $scope a drugi to $http bez względu na nazwę argumentu.
Dejmien_85
Cytat(tzm @ 22.04.2015, 15:29:20 ) *
kumasz juz?


Kolego, niestety Ty tutaj nie kumasz podstaw Angulara, musisz przekazać do kontrolera (jako drugi argument) tablicę, z czego pierwsze argumenty to stringi ze znanymi dla angulara zmiennymi, a ostatnim argumentem musi być funkcja, która przyjmuje te argumenty, przykład poniżej:

  1. app.controller('categoryController', ['$scope', '$http', function ($scope, $http) {
  2. $scope.productList = {};
  3. }]);


W ten sposób rozwiążesz swój problem.
tzm
Cytat(Dejmien_85 @ 22.04.2015, 18:35:39 ) *
Kolego, niestety Ty tutaj nie kumasz podstaw Angulara, musisz przekazać do kontrolera (jako drugi argument) tablicę, z czego pierwsze argumenty to stringi ze znanymi dla angulara zmiennymi, a ostatnim argumentem musi być funkcja, która przyjmuje te argumenty, przykład poniżej:

  1. app.controller('categoryController', ['$scope', '$http', function ($scope, $http) {
  2. $scope.productList = {};
  3. }]);


W ten sposób rozwiążesz swój problem.


Ty ... faktycznie. Nie wiem czemu mi to umnkelo, nawet w starych aplikacjach tak pisalem a tu mi ucieklo biggrin.gif

Sory, bledy byly tak nie jasne jak to w angularze ze ciezko bylo dojsc do tego.
Dejmien_85
Cytat(tzm @ 22.04.2015, 20:00:19 ) *
Ty ... faktycznie. Nie wiem czemu mi to umnkelo, nawet w starych aplikacjach tak pisalem a tu mi ucieklo biggrin.gif

Sory, bledy byly tak nie jasne jak to w angularze ze ciezko bylo dojsc do tego.


Spoko, takie przeoczenia się zdarzają. Aby tego uniknąć trzeba upewnić się, że nie przelatuje się przez pierwsze strony poradników, czy książek; łatwo bowiem przeskoczyć do rzeczy zaawansowanych, nie rozumiejąc do końca podstaw - I've been there, too!. ; )
tzm
Widzisz... i w tym rzecz prawdopodobnie bo ostatnio wziąłem do łap książkę żeby sobie teorie przypomnieć i minąłem początku z myślą że i tak tam pewnie nic nie ma dla mnie. A jednak jest opcja że było wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.