[英]angular-ui-router not working
我有index.html我能夠加載但angular-ui-router沒有將它路由到正確的templateURl(app.html與index.html相同的deirectoy)。我已經添加了所有必需的腳本但它不是工作的
<!DOCTYPE html>
<html ng-app ="mustReadAlgo">
<head>
<title>AngularJS Basic Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="lib/css/bootstrap.min.css" />
<link rel="stylesheet" href="lib/css/animate.min.css" />
<script type='text/javascript' src="public/lib/moment.min.js" charset="UTF-8"></script>
<script type='text/javascript' src="../../public/lib/lodash.min.js" charset="UTF-8"></script>
<script type='text/javascript' src="../../public/lib/angular/angular.min.js" charset="UTF-8"></script>
<script type='text/javascript' src="../../public/lib/angular-sanitize/angular-sanitize.min.js" charset="UTF-8"></script>
<script type='text/javascript' src="../../public/lib/angular-ui-router/release/angular-ui-router.min.js" charset="UTF-8"></script>
<script type='text/javascript' src="../../app.js" charset="UTF-8"></script>
<script type='text/javascript' src="../../app/controllers/app.controller.js" charset="UTF-8"></script>
</head>
<body>
<div class="container" ui-view="" ></div>
</body>
</html>
我的app.js是
'use-strict';
angular.module('mustReadAlgo',['ui.router']).config($stateProvider,$urlRouterProvider){
$urlRouterProvider.otherwise('/');
$stateProvider.state('home',{
url :'/',
templateUrl : 'app.html',(is in same directory as of index.html)
controller :'mustReadAlgoCntrller'
});
}).run(function(){
});
控制器代碼在app.controller.js中
angular.module('mustReadAlgo').controller('mustReadAlgoCntrller',function($scope)
{
$scope.message='Hello World';
console.log('inside controller');
});
app.html的內容
<div class="row">
<div class="col-xs-2">
<button class="form-control btn btn-default"><span class="glyphicon glyphicon-thumbs-up"></span>Hello World</button>
</div>
<p>Hello</p>
</div>
但是ui路由無法正常加載templateUrl? 任何人都可以幫助我,我是棱角分明的新手。
嘗試使用:
<div class="container">
<ui-view></ui-view>
</div>
// 代替:
<div class="container" ui-view="" ></div>
如果要傳遞直接HTML作為模板,則需要使用template:
,而不是templateUrl:
. 這是關於模板的文檔 。
您需要在狀態配置中定義狀態,並在$ urlRouterProvider.otherwise函數中使用statename
$stateProvider
.state("otherwise", { url : '/'})
$urlRouterProvider.otherwise('/otherwise');
在控制器中注入$ state,可以解決問題。 為了更清楚 -
angular.module('mustReadAlgo', ['ui.router']).controller('mustReadAlgoCntrller',['$scope', '$state', function($scope, $state)
{
$scope.message='Hello World';
console.log('inside controller');
}]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.