Учившись использовать угловой, ui-route является одной из трудностей. Нет проблем с простой использованием, но когда дело доходит до многоуровневого гнезда, я чувствую себя запутанным. Я посмотрел много информации и наступил на множество ошибок. До сих пор я не могу сказать, что у меня есть полное понимание пользовательского маршрута; Здесь я просто записываю несколько ям, которые я заполнил.
1. Использование реферата:
$ stateprovider .state ('Shop', {Resolve: {"shoplist": function ($ http) {return $ http ({url: "/bookapp/data/shoplist.php", метод: "get"})}}, Аннотация: true, url: "/shop", Templateurl: "Shop/shop/shop/listm Контроллер: "ShopListController"})Какое использование использования абстрактного атрибута? Официальное описание: Аннотация: True указывает на то, что это состояние не может быть явно активировано и может быть активировано только поджогом. Если вы не можете явно активировать, вы не можете получить доступ к этому маршруту штата непосредственно через «/магазин». Разве это не тупик? Какой смысл это делать? Подождите, давайте посмотрим на следующее предложение: оно может быть скрыто активировано в состоянии стеганого одеяла, и кажется, что оно все еще может быть живым. Как это может заставить его жить? Давайте посмотрим на следующий код:
.state ('Shop.main', {url: "/: id", аннотация: true, templateurl: "шаблоны/shop/main2.html", контроллер: "shopmaincontroller"})СОСТОЯНИЕ : «Shop.Main» - это субстанция магазина. Согласно теории, Shop.Main может активировать магазин. Нам нужно только получить доступ: /shop /1, чтобы мы могли активировать состояние магазина и "shop.main"
Давайте не будем спешить. Я добавлю абстрактный атрибут, чтобы играть с некоторыми захватывающими вещами. Давайте посмотрим на следующий код на следующем уровне:
.state ('shop.main.info', {url: "", templateurl: "Templates/shop/info.html", Cache: 'false', Controller: "Infocontroller"}) .state ('shop.main.author', {url: "/Authortat .state ('shop.main.samebook', {url: "somebook", шаблон: "<div> somebooksamebooksamebooksamebook </div>"})Я вижу, что государство "Shop.main.info" имеет URL государства "" "", поэтому нам нужно только получить доступ к "Shop/1" таким образом, таким образом, все субстанции по умолчанию, которые можно использовать как «Shop.Main».
В настоящее время в гнездовом соотношении модуля: list.html вложенная main.html, main.html вложенная info.html. Мы можем активировать это трехслойное гнездо, гнездясь через URL "Shop/: ID".
2. Использование параметров в контроллере:
В этом нет трудностей. Введите параметр URL "$ stateparams" в контроллер, и вы можете получить его в этом объекте:
shop.controller ("Shopmaincontroller", ['$ scope', '$ stateparams', '$ rootscope', function ($ scope, $ stateparams, $ rootscope) {$ scope.persons = [1,2,3,4,5,5,6]; cfploadingbar.start ();}]);3. Как предотвратить кеш шаблонов
В процессе разработки кеш шаблонов серьезно влияет на нашу отладку. Иногда код изменяется, но шаблон вообще не меняется. Это очень печально. Нам просто нужно слушать StateChangeCcess, а затем очистить $ templatecache. Здесь мы используем метод запуска, чтобы добавить слушателя:
bookApp.run (['$ rootcope', '$ templatecache', function ($ rootcope, $ templatecache) {var stateChangeCcess = $ ourcope. $ on ('$ statechangeccess', statechangeCcess); function stateChangcess ($ ourtscope);Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.