Я работаю над моим проектом AngularUI. Я читал все о состояниях, вложенных состояниях и абстрактных состояниях. Проблема в том, что я не могу понять, почему и когда я должен использовать абстрактное состояние? Какова цель использования абстрактного состояния?
ответ
Данное изображение означает, что указанное вами состояние не может быть доступно . Абстрактные состояния все еще нуждаются в собственных интересах, чтобы их дети могли подключаться.
Он вызывается, когда мы загружаем его состояние ребенка. Вы можете использовать абстрактное состояние, чтобы определить какой-то исходный шаблон вашей страницы, предположим, что вы можете взять пример любого сайта социальных сетей, где вы хотите показать профиль пользователя &. Для этого у вас может быть одно состояние abstract
, которое будет иметь url: ""
& имеет базовое расположение вашей страницы. Как header
, content
& footer
названные виды. header
& footer
Именованный вид будет заполнен абстрактным состоянием &, тогда ребенок определит, что содержимое зависит от того, какой модуль отображается./profile
покажет userProfile.html
& /social
покажет социальную страницу пользователя social.html
.
Config
app.config(function($stateProvider){
$stateProvider.state("app":
{
url: "", //you can have the default url here..that will shown before child state url
abstract: true,
views: {
'': {
templateUrl: 'layout.html',
controller: 'mainCtrl'
},
'header': {
templateUrl: 'header.html'
},
'footer': {
templateUrl: 'footer.html'
}
},
resolve: {
getUserAuthData: function(userService){
return userService.getUserData();
}
}
})
.state("app.profile": {
'[email protected]': {
templateUrl: 'profile.html',
controller: 'profileController'
}
})
.state("app.social": {
'[email protected]': {
templateUrl: 'social.html',
controller: 'socialController'
}
})
})
Другая основная особенность abstract
, что вы можете иметь общую решимость на нем, обеспечиваете унаследованные пользовательские данные с помощью данных для использования дочерних состояний или прослушивателем событий. Также вы можете иметь OnEnter
& OnExit
на этом убедившись, что вещи перед загрузкой state
&, оставляя от state
Если вы не хотите, чтобы состояние, которое может быть удалено \ перешло к, вы можете сделать его абстрактным. Пример
\A
\A.B
\A.B.C
Если вы не хотите, чтобы пользователь просто пойти \A
, вы должны сделать это abstract
.
Аннотация состояния
Существуют ситуации, в которых мы должны иметь некоторую общую информацию, доступную в нескольких штатах. Для этого UI-Router предоставляет возможность указывать абстрактные состояния. Абстрактные состояния могут иметь дочерние состояния, но они не могут быть активированы сами, и не переходят к. Абстрактное состояние неявно активируется, когда активируется одно из его дочерних состояний. Это полезно, когда: нам нужно добавить URL-адрес ко всем адресам дочерних состояний , нам нужно вставить шаблон со своим собственным ui-представлением, в котором будут заполнены дочерние состояния , нам необходимо предоставить разрешенные зависимости (через разрешение) в для использования дочерними состояниями нам необходимо предоставить унаследованные пользовательские данные состояния для использования дочерними состояниями или событиями Абстрактные состояния определены с указанием абстрактного ключа в объекте конфигурации состояния, установленном в true.
$stateProvider
.state('home', {
abstract: true,
templateURL: 'home.html'
})
В принципе, абстрактные состояния помогают вам перемещать общую функциональность из разных состояний в родительское абстрактное состояние.
Типичным примером является состояние, которое обрабатывает загрузку имени пользователя, параметров локализации, метаданных. Вы не хотите, чтобы пользователь перенаправлял состояние, которое будет загружать именно это. Вы хотите, чтобы быть загружены всегда, когда перенаправлены на каждом штате
/session
бы абстрактно, но /session/main
, /session/detail
не будет. Через зависимости данные сеанса будут загружены при переходе в оба состояния main
и detail
, но вы не хотите, чтобы пользователь перешел в состояние session
.
- 1. Какова цель абстрактного метода?
- 2. Какова цель использования?
- 3. Какова цель повторного использования?
- 4. Какова цель использования @ModelAttribute
- 5. Какова цель использования @PortableProperty
- 6. Какова цель использования указателей?
- 7. Какова цель использования dip?
- 8. Какова цель использования «защищенных»?
- 9. Какова цель использования статических методов?
- 10. Какова цель использования файлов unmanaged.dll.manifest?
- 11. Какова цель использования ~ в JavaScript?
- 12. Какова цель использования! в JavaScript?
- 13. Какова цель использования ## в JQuery
- 14. Какова цель использования переменных приложения?
- 15. Какова цель использования библиотеки Boost.MPI?
- 16. Какова цель использования изоморфных webapps?
- 17. `matplotlib`: какова цель анимированного состояния артиста?
- 18. Какова цель внутреннего абстрактного метода в абстрактном классе?
- 19. Какова цель использования .getChildren(). AddAll() в JavaFX?
- 20. Какова цель использования этого в функции javascript?
- 21. Какова цель написания системного варианта использования?
- 22. Какова цель использования «+ =» вместо «=» в java?
- 23. Какова цель использования & перед аргументом функции?
- 24. Какова цель использования кода сброса браузера CSS?
- 25. Какова цель использования try, catch блоков?
- 26. Какова цель использования метода QueryInterface? (Direct3D)
- 27. BASH: Какова цель использования `/` в списке?
- 28. Какова цель использования схем в генетическом алгоритме?
- 29. Какова цель использования `include` в PHP?
- 30. Какова цель использования квадратных скобок в json?