Respostas:
Ambos fazem o mesmo trabalho que são usados para propósitos de roteamento no SPA (aplicativo de página única).
URLs para controladores e visualizações (parciais HTML). Ele observa $ location.url () e tenta mapear o caminho para uma definição de rota existente.
HTML
<div ng-view></div>
A tag acima renderizará o modelo a partir da $routeProvider.when()condição mencionada em .config(fase de configuração) do angular
Limitações: -
ng-viewpágina$routeProviderfalhará. (para isso, precisamos usar directivas como ng-include, ng-switch, ng-if, ng-show, o que parece ruim tê-los em SPA)O AngularUI Router é uma estrutura de roteamento para o AngularJS, que permite organizar as partes da sua interface em uma máquina de estado. O roteador de interface do usuário é organizado em torno de estados, que podem opcionalmente ter rotas e outros comportamentos anexados.
Vistas múltiplas e nomeadas
Outro ótimo recurso é a capacidade de ter várias visualizações de interface do usuário em um modelo.
Embora várias visualizações paralelas sejam um recurso poderoso, muitas vezes você poderá gerenciar suas interfaces com mais eficiência, aninhando seus views e emparelhando essas visualizações com estados aninhados.
HTML
<div ui-view>
<div ui-view='header'></div>
<div ui-view='content'></div>
<div ui-view='footer'></div>
</div>
A maioria do ui-routerpoder é que ele pode gerenciar estados e visualizações aninhados.
Prós
ui-viewem uma única páginaui-view="some"estado de apenas usando o roteamento absoluto usando @com o nome do estado.@para alterar ui-view="some". Isso substituirá o em ui-viewvez de verificar se está aninhado ou não.ui-srefpara criar uma hrefURL dinamicamente com base URLno mencionado em um estado, também pode fornecer parâmetros de estado no jsonformato.Para mais informações: Ui-router angular
Para uma melhor flexibilidade com várias visualizações aninhadas com estados, eu prefiro que você escolha ui-router
$stateProvidere$routeProvider
O ng-Router da Angular leva URLsem consideração durante o roteamento, o UI-Router statesalém dos URLs.
Os estados são vinculados a visualizações nomeadas, aninhadas e paralelas, permitindo que você gerencie com eficiência a interface do seu aplicativo.
Enquanto estiver no ng-router, você deve ter muito cuidado com os URLs ao fornecer links via <a href="">tag, no UI-Router, você deve ter stateem mente apenas. Você fornece links como <a ui-sref="">. Observe que, mesmo que você use o <a href="">UI-Router, como faria no ng-router, ele ainda funcionará.
Portanto, mesmo que você decida alterar seu URL algum dia, stateele permanecerá o mesmo e você precisará alterar o URL apenas em .config.
Enquanto o ngRouter pode ser usado para criar aplicativos simples, o UI-Router facilita muito o desenvolvimento de aplicativos complexos. Aqui está o seu wiki.
$ route: é usado para URLs de links diretos para controladores e visualizações (parciais HTML) e observa $ location.url () para mapear o caminho a partir de uma definição existente de rota.
Quando usamos ngRoute, a rota é configurada com $ routeProvider e, quando usamos o ui-router, a rota é configurada com $ stateProvider e $ urlRouterProvider.
<div ng-view></div>
$routeProvider
.when('/contact/', {
templateUrl: 'app/views/core/contact/contact.html',
controller: 'ContactCtrl'
});
<div ui-view>
<div ui-view='abc'></div>
<div ui-view='abc'></div>
</div>
$stateProvider
.state("contact", {
url: "/contact/",
templateUrl: '/app/Aisel/Contact/views/contact.html',
controller: 'ContactCtrl'
});