好像Angular.js UI路由器必須纔能有整個事情的工作有ui-view
。這裏是沒有ui-view
一個例子,路由不工作(無警報):http://plnkr.co/edit/e1vzj6pDdqADKJ2LSsd3?p=preview避免使用UI視在角UI路由器
HTML:
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="[email protected]" src="http://code.angularjs.org/1.2.12/angular.js" data-semver="1.2.12"></script>
<script data-require="[email protected]*" data-semver="0.2.8" src="http://angular-ui.github.io/ui-router/release/angular-ui-router.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainCtrl">
<a href="#/link">Test</a>
<!--div ui-view></div-->
</body>
</html>
的Javascript:
var app = angular.module('plunker', ['ui.router']);
app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
.state("link", {
url: "/link",
resolve: {
test: function() {
alert("Triggered resolve /link");
return true;
}
}
});
}]);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
});
如果你把<div ui-view></div>
回來,它會工作。
這沒什麼大不了的,因爲我可以將ui-view
留空。我不使用ui-view
(聽起來很奇怪),因爲ui-view
取代了DOM。我只想切換我的container
而不是完成翻錄和替換。
將
ui-router
作爲黑客留空是否正確?有沒有辦法讓
ui-router
不需要ui-view
?
在HTML中使用'ui-sref'作品並且沒有'ui-view'指令。我很好奇爲什麼會這樣。另外,如果我需要傳遞參數,我該如何使用'ui-sref',而不僅僅是'state' –
我分叉併爲你創建了一個演示如何傳遞params的參數:http://plnkr.co/編輯/ L38Tz8CiUt4e4FV6Vmml?p =預覽。我可以看到在某些情況下,將這些東西傳遞給ui-router可能會有好處,但在大多數情況下,我會使用純粹的hrefs。如果你確實不需要渲染視圖,我仍然會使用一個emtpy ui-view,這會讓html代碼看起來更整潔。 –
baba,你是否改變了你的plnkr代碼中的任何內容,因爲我沒有看到代碼通過params –