Ничего не смешивается, если не делать этого намеренно, про templateUrl уже упомянули, но так же есть следующие факты:
— Можно использовать директивы не только как отдельные элементы, но и как некоторое нагромождение функционала на элемент через restrict: 'A|E|C|M', то бишь мы можем, например, навесить несколько обработчиков клика как-то так:
— Так же есть transclude, с помощью которого можно городить одну директиву внутри другой, в помощь ко всей этой вкуснятине приходит еще и наследование областей видимости ($scope которые), а так же возможность явно указать зависимость директивы от другой.
Ну, я даже не знаю, как обычно все делают, ввожу адрес да и все :) Суть в том, что это не напрягает, т.к. комп не выключается и вкладка с сайтом всегда висит закрепленная. Но кнопка для включения лайв эдита для текущей открытой вкладки все будет прекрасным дополнением :)
На данный момент у меня два дебаг конфига, для PHP и, собственно, для LiveEdit/JS Debug. Т.к. я использую два монитора, то у меня на одном открыта IDE, а на другом хром с всегда открытой нужной страницей. Было бы действительно здорово, если бы я мог включить лайв эдит, без запуска JS debug, кнопочкой из выпадающего меню кнопки расширения :)
Я уже разобрался чего куда, сначала даже и не видел, что создается новый конфиг дебага на лету :)
Настроил один конфиг как надо, замаппил нужные пути и все заработало (не считая вот этого бага, который уже, вроде как, фиксят). Просто нигде эти изменения, ломающие обратную совместимость, не были освещены в полной мере, сказали только про то, что теперь весь LiveEdit — это часть JS debug (хотя тут тоже не очень понятно, причем тут тогда CSS, но это не призыв к действию :) ), а про самую важную штуку, создание нового конфига дебага на лету, ни слова :(
Нет, $scope.$watch() нечего делать в фильтре, тот фильтр, что я привел был просто демонстрацией, не более, на деле же сам фильтр не должен рулить кэшированием, все это должно быть в контроллере или сервисе :)
Да и к тому же, нельзя отдавать как ключ именно объект, т.к. при попытке вытащить из другого объекта (кэша в данном случае) что-то по ключу у этого ключа вызывается метод .toString(), со списком ( [] — список, {} — объект ) все хорошо отрабатывает, т.к. он преобразуется в строку вида «key1,another_key2,one_more_key3», а вот объект вне зависимости от содержимого всегда будет "[object Object]", Lo-Dash не производит каких-то хитрых операций с возвращаемым ключом, пруфлинк. :)
Так и не понял зачем вы полностью сломали прекрасный плагин LiveEdit :(
Такой случай: проект на Symfony2, шаблоны twig, раньше я мог «вживую» редактировать CSS и все изменения тут же отображались (и то в случае, когда не включен местный assetic и CSS лежат в папке /web/*), а сейчас же я совершенно не представляю как мне все это безобразие завести, даже запуская совершенно бесполезный Javascript Debug на каком-то левом .html файле и переходя вручную на нужную страницу (на настроенном домене, который прописан в серверах проекта, кстати) я все равно не могу получить живое редактирование, встроенный же сервер не понимает абсолютные пути (т.к. URL выстраивается такой /projectName/src/somefile.html) до всех CSS и JS файлов, без которых работать ничего не будет (по понятный причинам).
По поводу StateManager, честно, так и не понял зачем он нужен, почему бы просто один раз не написать Interceptor, а все данные передавать в контроллеры через resolve.
Возможно, я не правильно понял, но вы вручную вызываете $digest? Если да, то это плохая практика, если нужно провести какую-то манипуляцию со $scope, в месте, где AngularJS сам за этими манипуляциями не сможет уследить (к примеру $.animate, или еще что-нибудь асинхронное), то стоит использовать $scope.$apply все же.
Просто я сам никогда с ошибкой из п.3 никогда не сталкивался, часто бывает Error $scope.$digest already in progress, но не более того :)
В отличии от ng-show/ng-hide, которые просто манипулировали CSS свойствами, сия же директива честно убирает элемент из DOM :)
— Можно использовать директивы не только как отдельные элементы, но и как некоторое нагромождение функционала на элемент через restrict: 'A|E|C|M', то бишь мы можем, например, навесить несколько обработчиков клика как-то так:
— Так же есть transclude, с помощью которого можно городить одну директиву внутри другой, в помощь ко всей этой вкуснятине приходит еще и наследование областей видимости ($scope которые), а так же возможность явно указать зависимость директивы от другой.
Настроил один конфиг как надо, замаппил нужные пути и все заработало (не считая вот этого бага, который уже, вроде как, фиксят). Просто нигде эти изменения, ломающие обратную совместимость, не были освещены в полной мере, сказали только про то, что теперь весь LiveEdit — это часть JS debug (хотя тут тоже не очень понятно, причем тут тогда CSS, но это не призыв к действию :) ), а про самую важную штуку, создание нового конфига дебага на лету, ни слова :(
Такой случай: проект на Symfony2, шаблоны twig, раньше я мог «вживую» редактировать CSS и все изменения тут же отображались (и то в случае, когда не включен местный assetic и CSS лежат в папке /web/*), а сейчас же я совершенно не представляю как мне все это безобразие завести, даже запуская совершенно бесполезный Javascript Debug на каком-то левом .html файле и переходя вручную на нужную страницу (на настроенном домене, который прописан в серверах проекта, кстати) я все равно не могу получить живое редактирование, встроенный же сервер не понимает абсолютные пути (т.к. URL выстраивается такой /projectName/src/somefile.html) до всех CSS и JS файлов, без которых работать ничего не будет (по понятный причинам).
Просто я сам никогда с ошибкой из п.3 никогда не сталкивался, часто бывает Error $scope.$digest already in progress, но не более того :)