无法让 ng-controller 在 angular 应用程序中工作
Cannot get ng-controller to work in angular app
我刚刚开始自己学习网络开发,但我 运行 遇到了一个问题,即我的整个应用程序或只是一个控制器无法合作。
在prototype.js
中,我声明应用程序:
var cds = angular.module('cds', ['ngRoute']);
cds.config(function($routeProvider) {
$routeProvider
.when('/', {
controller: 'appCtrl',
templateUrl: 'partials/login.html'
})
.otherwise({
redirectTo: '/'
});
});
cds.controller('appCtrl', ['$scope', function($scope) {
$scope.pageClass = 'page-login';
$scope.list = [
{name: 'One', description: 'I'},
{name: 'Two', description: 'II'},
{name: 'Three', description: 'III'},
{name: 'One More', description: 'Extra'}
];
}]);
在我的 HTML 文件中:
<!DOCTYPE html>
<html ng-app='cds'>
<head>
<title>References</title>
<meta charset="utf-8">
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script src="js/prototype.js"></script>
<style type="text/css">
@import url("styles.css");
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="css/font-awesome.css">
</head>
<body ng-controller='appCtrl' onload="align()" onresize="align()">
{{ pageClass }}
<div ng-view></div>
<div id="dropdown">
<button class="drop-btn">Options</button>
<div class="dropdown-content">
<a href="#/body_diagram"><img src="img/header.menu.png"></a>
</div>
</div>
</body>
</html>
出于某种原因,{{ pageClass }}
甚至不会显示我在控制器中分配给它的值,更不用说 ng-view
元素了。之前,我遵循了一个非常古老的路由教程,其中仅使用 angular.module('myApp', ...)
声明了应用程序,并且所有控制器都作为独立于 angular 应用程序的独立功能制作,一切对我来说都很好。然而,在从 angular 1.0.7 跳到 1.5.8 之后(这是一个很长的故事,也是一个新手错误),我尝试更新样式并清理我的代码,结果就是这样。我觉得我在这里遗漏了一些非常基本的东西。
编辑:
原来我忘了包含 ng-route。德普。现在一切正常。谢谢大家!
您似乎缺少 ngRoute
模块。您可以通过 CDN link 访问它:
http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-route.min.js
这是添加了依赖项的 fiddle。
嘿,一定要包含 ngRoute,也许将脚本包含在正文的底部...通过这样做让你的 fiddle 工作
我刚刚开始自己学习网络开发,但我 运行 遇到了一个问题,即我的整个应用程序或只是一个控制器无法合作。
在prototype.js
中,我声明应用程序:
var cds = angular.module('cds', ['ngRoute']);
cds.config(function($routeProvider) {
$routeProvider
.when('/', {
controller: 'appCtrl',
templateUrl: 'partials/login.html'
})
.otherwise({
redirectTo: '/'
});
});
cds.controller('appCtrl', ['$scope', function($scope) {
$scope.pageClass = 'page-login';
$scope.list = [
{name: 'One', description: 'I'},
{name: 'Two', description: 'II'},
{name: 'Three', description: 'III'},
{name: 'One More', description: 'Extra'}
];
}]);
在我的 HTML 文件中:
<!DOCTYPE html>
<html ng-app='cds'>
<head>
<title>References</title>
<meta charset="utf-8">
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script src="js/prototype.js"></script>
<style type="text/css">
@import url("styles.css");
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" href="css/font-awesome.css">
</head>
<body ng-controller='appCtrl' onload="align()" onresize="align()">
{{ pageClass }}
<div ng-view></div>
<div id="dropdown">
<button class="drop-btn">Options</button>
<div class="dropdown-content">
<a href="#/body_diagram"><img src="img/header.menu.png"></a>
</div>
</div>
</body>
</html>
出于某种原因,{{ pageClass }}
甚至不会显示我在控制器中分配给它的值,更不用说 ng-view
元素了。之前,我遵循了一个非常古老的路由教程,其中仅使用 angular.module('myApp', ...)
声明了应用程序,并且所有控制器都作为独立于 angular 应用程序的独立功能制作,一切对我来说都很好。然而,在从 angular 1.0.7 跳到 1.5.8 之后(这是一个很长的故事,也是一个新手错误),我尝试更新样式并清理我的代码,结果就是这样。我觉得我在这里遗漏了一些非常基本的东西。
编辑:
原来我忘了包含 ng-route。德普。现在一切正常。谢谢大家!
您似乎缺少 ngRoute
模块。您可以通过 CDN link 访问它:
http://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular-route.min.js
这是添加了依赖项的 fiddle。
嘿,一定要包含 ngRoute,也许将脚本包含在正文的底部...通过这样做让你的 fiddle 工作