javascript - Proveedor estatal y proveedor de rutas en angularJS.
angular-routing (1)
A continuación se muestra mi archivo app.js
angular
.module(''repoApp'', [
''ngAnimate'',
''ngAria'',
''ngCookies'',
''ngMessages'',
''ngResource'',
''ngRoute'',
''ngSanitize'',
''ngTouch'',
''ui.bootstrap'',
''ui.router''
])
.config(function ($routeProvider) {
$routeProvider
.when(''/'', {
templateUrl: ''views/main.html'',
controller: ''MainCtrl''
})
.when(''/about'', {
templateUrl: ''views/about.html'',
controller: ''AboutCtrl''
})
.when(''/login'', {
templateUrl: ''views/loginPage.html'',
controller: ''loginCtrl''
})
.otherwise({
redirectTo: ''/''
});
});
angular
.module(''loginState'',[''ui.router'']);
Abajo esta mi archivo de estados
angular
.module(''repoApp'')
.config(function ($stateProvider) {
$stateProvider.state(''home1'', {
url:''/home1'',
templateUrl: ''views/modals/test.html''
})
.state(''secondState'',{
url:''/secondState'',
templateUrl: ''views/modals/secondStateTest.html''
});
});
El problema es que, al usar mi HTML, navego para ingresar a la página.
<ul class="nav navbar-nav">
<li class="active"><a href="#/">Home</a></li>
<li><a ng-href="#/about">About</a></li>
<li><a ng-href="#/">Contact</a></li>
<li class="loginShift"><a ng-href="#/login">Login</a></li>
</ul>
pero estoy tratando de alcanzar el estado tan pronto como mi flujo golpeó el controlador
angular.module(''repoApp'')
.controller(''loginCtrl'', function ($scope,$modal,$state) {
$scope.awesomeThings = [
''HTML5 Boilerplate'',
''AngularJS'',
''Karma''
];
$state.go(''home1'');
$scope.openDialog = function () {
$modal.open({
keyboard: ''static'',
templateUrl: ''views/login/loginCred.html'',
});
};
});
pero no soy capaz de golpear el estado de origen. Si cambio mi archivo de estados es decir
$stateProvider.state(''home1'', {
url:''/login'',
templateUrl: ''views/modals/test.html''
})
Aquí he cambiado la URL. Funciona bien ahora.
Tengo una plantilla desde la que quiero navegar al siguiente estado
<div>
<button data-ng-click="openDialog()">open ME!</button>
<div><a ui-sref="secondState">click here</a></div>
</div
pero tan pronto como hago clic en esta etiqueta de anclaje, me lleva de vuelta a la página de inicio. Es decir, no al estado al que pretendo ir. El principal problema es la URL (supongo) que cualquier ayuda será apreciada.
No debe utilizar ngRoute
y UI-router
. Aquí hay un código de ejemplo para el enrutador UI:
repoApp.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state(''state1'', {
url: "/state1",
templateUrl: "partials/state1.html",
controller: ''YourCtrl''
})
.state(''state2'', {
url: "/state2",
templateUrl: "partials/state2.html",
controller: ''YourOtherCtrl''
});
$urlRouterProvider.otherwise("/state1");
});
//etc.
Puede encontrar una gran respuesta a la diferencia entre estos dos en este hilo: ¿Cuál es la diferencia entre enrutador angular y enrutador ui angular?
También puede consultar los documentos de UI-Router aquí: https://github.com/angular-ui/ui-router