Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PhpStorm/WebStorm autocomplete lub wyłączenie inspekcji
Forum PHP.pl > Inne > Hydepark
Fred1485
Witam, zaczynam przygodę z angularem i mam mały problem. Jako,że na codzień używam PhpStorm i nie jet on stworzony do współpracy z frontendem zainstalowałem na próbę Webstorm w najnowszej wersji,ale problem jest identyczny...
Mały kawałek kodu:

  1. <tr ng-repeat="m in data">
  2. <td>{{$index + 1}}</td>
  3. <td>{{m.name}}</td>
  4. <td ng-show="showForm">
  5. <input type="text" ng-model="m.name">
  6. </label>
  7. </td>
  8. <td ng-class="{'high': m.meters > 3000, 'low': m.meters < 3000}">{{m.meters}}</td>
  9. <td ng-show="showForm">
  10. <input type="text" ng-model="m.meters">
  11. </label>
  12. </td>
  13. <td>
  14. <button ng-click="showForm=true">Edit</button>
  15. </td>
  16. </tr>


Taki kod działa poprawnie, nie ma żadnego błedu w konsoli, lecz IDE rzuca się o przypisywanie, czy też odwołanie się do zmiennej 'showForm'. Nie definiuję jeje w kontrolerze, bo w ng-repeat chce mieć to osobno w każdym scope. Nie wiem, czy da się to jakoś narawić i naprostować IDE. Chciałbym wyłączyć w cholerę w tym pliku inspekccję niezdefiniowanej zmiennej. Tworzyłem tym sposobem własny scope. https://www.jetbrains.com/help/phpstorm/10.0/scopes.html. Wyłączyłem w tym pliku inspekcję niezdefiniowanej zmiennej, lecz to nie działa na Javascript w atrybutach HTML i dalej mam error w twarz. Pomaga tylko taka opcja:

  1. <td ng-show="//noinspection JSUnresolvedVariable
  2. showForm">


lecz musiałbym w wielu miejsach dodawać tą linijkę. Może ktoś spotkał się z tym problemem? Może po prostu coś źle robię, o czymś zapomniałem?

Pozdrawiam.
com
yy nie bardzo rozumiem co Ty chcesz uzyskać, ale PHPStorm, ma wszystko to co posiada WebStorm, plus narzędzia do php, wiec to co napisałeś, że nie jest dla front endu to bzdura wink.gif

jak tak zrobisz to każda modyfikacja showForm zmieni wszystkie przecież, a to raczej nie o to chodziło.

widzę multiposting tongue.gif
http://forum.php.pl/index.php?showtopic=251624&hl=
Pyton_000
@com nie do końca to samo, to są bardzo podobne produkty ale z innym przeznaczeniem. W Webstorm jest dużo lepsza obsługa dla technologii Front, a PHPStorm dla PHP. Pracowałem na obu i widać różnice znaczące
kapslokk
https://www.jetbrains.com/phpstorm/ :
Cytat
PhpStorm = WebStorm + PHP + DB/SQL
All the features of WebStorm are included into PhpStorm, and full-fledged support for PHP and Databases/SQL support are added on top.


Czyżby oszukiwali? ;>
Pyton_000
o czyli się zmieniło smile.gif 2 wersje temu tak nie było tongue.gif
kapslokk
biggrin.gif Chyba jednak się mylisz, http://web.archive.org/web/20140314121603/...s.com/phpstorm/
Cytat
NOTE: PhpStorm includes all the functionality of WebStorm (HTML/CSS Editor, JavaScript Editor) and adds full-fledged support for PHP and Databases/SQL.
Fred1485
Co do multipostingu to podczas edycji postu jakiś crash poszedł i zamiast edytować dodało nowy temat tongue.gif

Cytat
jak tak zrobisz to każda modyfikacja showForm zmieni wszystkie przecież, a to raczej nie o to chodziło.


W ng-repeat podczas iteracji dla każdego elementu dodawany jest nowy scope, zmiana showForm spowoduje zmianę tylko w jednym scope.
com
Pyton_000 też tak myślałem, a potem JB rozwiał moje wątpliwości biggrin.gif jasne że WS jest nastawiony na typowy front i dla tych co nie robią w php, ale angulary itd działają tak samo w obu biggrin.gif

no ale skąd PHPStorm/WS ma wiedzieć o istnieniu tej zmiennej? skoro jej nigdzie nie definiujesz..
Fred1485
No i tu jest pies pogrzebany wink.gif PhpStorm nie poradzi sobie, lecz dla angulara to zadziała i dlatego chcę wyłączyć inspekcję.
IceManSpy
Może nie widzi zmiennej, bo showForm jest "globalna" - powinna być zdefiniowana w kontrolerze.
Spróbuj tak (showForm działa niezależnie od siebie dla każdego m):

  1. <tr ng-repeat="m in data">
  2. <td>{{$index + 1}}</td>
  3. <td>{{m.name}}</td>
  4. <td ng-show="m.showForm">
  5. <input type="text" ng-model="m.name">
  6. </label>
  7. </td>
  8. <td ng-class="{'high': m.meters > 3000, 'low': m.meters < 3000}">{{m.meters}}</td>
  9. <td ng-show="showForm">
  10. <input type="text" ng-model="m.meters">
  11. </label>
  12. </td>
  13. <td>
  14. <button ng-click="m.showForm=true">Edit</button>
  15. </td>
  16. </tr>
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.