Esempi lumache in database del server accessibile tramite API:Routing angolare UI-Router basato su slug da API Ajax Call. vista del carico basato sul slug
{slug: "john-smith",type: "user"}
{slug: "microsoft-technologies",type: "company"}
scenario 1: vista utente & regolatore: http://localhost/john-smith
.state('user', {
url: '/:user',
templateUrl: 'partial-user.html',
controller: 'userCtrl'
})
scenario 2: vista dell'azienda & regolatore : http://localhost/microsoft-technologies
.state('company', {
url: '/:company',
templateUrl: 'partial-company.html',
controller: 'companyCtrl'
})
Ora voglio rendere lo stato dinamico basato sullo slug ottenuto dalla chiamata API al server.
Ho scritto un codice immaginario . Ma Non ricevo modo per raggiungere
// Example URL http://localhost/john-smith
.state('hybrid', {
// /john-smith
url: '/:slug',
templateUrl: function() {
return "partial-"+type+".html"
},
controllerProvider: function (rt) {
return type+'Controller'
},
resolove: {
type: function ($http, $stateParams) {
$http.get({
method: "GET",
url: "http://localhost/api/" + $stateParams.slug
}).success(function(response, status, headers, config){
//response = {slug: "john-smith",type: "user"}
return response.type
})
return
}
}
})
voglio 'ritorno type' sulla base della risposta http e http richiesta sulla base di '$ stateParams.slug'. Dalla risposta http posso ottenere il nome del modello/controller –
Questo è solo un consumo del risultato $ http ... che ho saltato, (perché non ho la parte server nel plunker) ... Ma è un po 'facile. Ho fatto il resto per te ... controller, template ... chiamerai semplicemente server, riceverai risposta e passerai invece del mio tipo risultato ..come oggetto –
ma come passare promessa da http è il mio dubbio. Si prega di utilizzare setTimeout invece di $ http. vedi qui http://plnkr.co/edit/UngzlI2g9DSHVM2CKfwC?p=preview [Plnkr] –