ng-Route 未加载视图,显示空白屏幕且没有任何错误
ng-Route is not loading the view, a blank screen is displayed without any errors
我正在尝试使用 ng-route 在 angular 中创建一个应用程序,但我无法让它工作。
我确实搜索了这个问题并尝试了一些建议,比如将我的 ng-app 移动到,但似乎没有任何效果。
我在下面添加了一个插件link
http://plnkr.co/edit/a8VIRzloIMqANK4f8YXb?p=preview
有人可以帮忙
也在这里添加代码
索引html
<!DOCTYPE html>
<html >
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
<script type="text/javascript" src="dist/ng-table.min.js"></script>
<link rel="stylesheet" href="dist/ng-table.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-route.min.js"></script>
<link href="main.css" rel="stylesheet" />
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="DemoCtrl.js"></script>
</head>
<body ng-controller="DemoCtrl" ng-app="stockApp">
<header>
<div class="blog-masthead">
<div class="container">
<nav class="blog-nav">
<h1 class="stockHeader">Stock App</h1>
<a class="blog-nav-item pull-right" href="#/">Login</a>
<a class="blog-nav-item pull-right" href="#/stock">Stock</a>
<a class="blog-nav-item active pull-right" href="#/addTools">Add Tools</a>
</nav>
</div>
</div>
</header>
<div ng-view></div>
</body>
</html>
app.js
var sampleApp = angular.module('stockApp', ['ngRoute']);
sampleApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'login.html',
controller: 'DemoCtrl'
}).
when('/stock', {
templateUrl: 'stockStatus.html',
controller: 'DemoCtrl'
}).
when('/addTools', {
templateUrl: 'addTools.html',
controller: 'DemoCtrl'
}).
otherwise({
redirectTo: '/'
});
}]);
DemoCtrl.js
var app = angular.module('stockApp', ['ngTable']).
controller('DemoCtrl', function($scope) {
$scope.stock="In Stock!"
})
除此之外还有 3 个部分。
查看您原来的 plunker 的这个分支,其中更新了以下代码段:http://plnkr.co/edit/91XYMEC85Shgu6kQSrty?p=preview
// DemoCtrl.js
var app = angular.module('controllers', []).
controller('DemoCtrl', function($scope) {
$scope.stock="In Stock!"
})
// app.js
var sampleApp = angular.module('stockApp', ['ngRoute', 'controllers']);
首先,您的控制器代码通过传入依赖项重新初始化 stockApp 模块。如果您的控制器需要单独的依赖项,请将它们创建为单独的模块,并使您的应用程序依赖于该模块。
其次,我更新了angular和angularJS的版本。根据之前的回答,冲突的版本可能会导致问题:Failed to instantiate module [$injector:unpr] Unknown provider: $routeProvider.
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.js"></script>
还有一件事需要检查...确保您以正确的顺序加载 angular js 文件(控制器、服务、工厂等)。比如一个controller使用一个service,这个service需要加载到controller之前的DOM
此外,请确保您的 none 服务或工厂正在重新初始化应用程序。您的代码不应如下所示:
angular.module('app', [])
.service('TrxnService', function () {
//code here
})
但是,它应该看起来像这样(没有括号)...
angular.module('app')
.service('TrxnService', function () {
//code here
})
新手注意事项:将 'app' 替换为您在顶级模块声明中为您的应用命名的任何内容。
我正在尝试使用 ng-route 在 angular 中创建一个应用程序,但我无法让它工作。
我确实搜索了这个问题并尝试了一些建议,比如将我的 ng-app 移动到,但似乎没有任何效果。
我在下面添加了一个插件link
http://plnkr.co/edit/a8VIRzloIMqANK4f8YXb?p=preview
有人可以帮忙
也在这里添加代码
索引html
<!DOCTYPE html>
<html >
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
<script type="text/javascript" src="dist/ng-table.min.js"></script>
<link rel="stylesheet" href="dist/ng-table.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-route.min.js"></script>
<link href="main.css" rel="stylesheet" />
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="DemoCtrl.js"></script>
</head>
<body ng-controller="DemoCtrl" ng-app="stockApp">
<header>
<div class="blog-masthead">
<div class="container">
<nav class="blog-nav">
<h1 class="stockHeader">Stock App</h1>
<a class="blog-nav-item pull-right" href="#/">Login</a>
<a class="blog-nav-item pull-right" href="#/stock">Stock</a>
<a class="blog-nav-item active pull-right" href="#/addTools">Add Tools</a>
</nav>
</div>
</div>
</header>
<div ng-view></div>
</body>
</html>
app.js
var sampleApp = angular.module('stockApp', ['ngRoute']);
sampleApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'login.html',
controller: 'DemoCtrl'
}).
when('/stock', {
templateUrl: 'stockStatus.html',
controller: 'DemoCtrl'
}).
when('/addTools', {
templateUrl: 'addTools.html',
controller: 'DemoCtrl'
}).
otherwise({
redirectTo: '/'
});
}]);
DemoCtrl.js
var app = angular.module('stockApp', ['ngTable']).
controller('DemoCtrl', function($scope) {
$scope.stock="In Stock!"
})
除此之外还有 3 个部分。
查看您原来的 plunker 的这个分支,其中更新了以下代码段:http://plnkr.co/edit/91XYMEC85Shgu6kQSrty?p=preview
// DemoCtrl.js
var app = angular.module('controllers', []).
controller('DemoCtrl', function($scope) {
$scope.stock="In Stock!"
})
// app.js
var sampleApp = angular.module('stockApp', ['ngRoute', 'controllers']);
首先,您的控制器代码通过传入依赖项重新初始化 stockApp 模块。如果您的控制器需要单独的依赖项,请将它们创建为单独的模块,并使您的应用程序依赖于该模块。
其次,我更新了angular和angularJS的版本。根据之前的回答,冲突的版本可能会导致问题:Failed to instantiate module [$injector:unpr] Unknown provider: $routeProvider.
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-route.js"></script>
还有一件事需要检查...确保您以正确的顺序加载 angular js 文件(控制器、服务、工厂等)。比如一个controller使用一个service,这个service需要加载到controller之前的DOM
此外,请确保您的 none 服务或工厂正在重新初始化应用程序。您的代码不应如下所示:
angular.module('app', [])
.service('TrxnService', function () {
//code here
})
但是,它应该看起来像这样(没有括号)...
angular.module('app')
.service('TrxnService', function () {
//code here
})
新手注意事项:将 'app' 替换为您在顶级模块声明中为您的应用命名的任何内容。