【发布时间】:2015-06-02 10:53:30
【问题描述】:
我正在尝试使用 AngularJS 的模板和路由,我相信我已经正确设置了它,尽管它不起作用。我查看了堆栈溢出以及不同的在线论坛,但没有一个推荐的解决方案对我有用。
我的 AngularModule 看起来像:
var app = angular.module('Contacts',['ngRoute']);
app.controller('main', function($scope){
$scope.visible = false;
$scope.contacts = [];
//add object to array
$scope.newContact = function(){
$scope.contacts.push({name:$scope.ContactName, phone:$scope.ContactPhone, email:$scope.ContactEmail});
$scope.ContactName = '';
$scope.ContactPhone = '';
$scope.ContactEmail = '';
};
$scope.remove = function(item) {
var index = $scope.contacts.indexOf(item)
$scope.contacts.splice(index,1);
}
app.config(function($routeProvider) {
$routeProvider
.when('/',{
templateURL : 'pages/home.html',
controller : 'main'
})
.when('/add', {
templateURL : 'pages/add.html',
controller : 'addController'
})
.when('/details',{
templateURL : 'pages/details.html',
controller : 'detailsController'
});
});
app.controller('addController', function($scope) {
});
app.controller('detailsController', function($scope) {
});
});
这似乎设置正确,虽然我下面的 HTML 仍然保持空白:
<html ng-app="Contacts" class="ng-scope">
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<link rel="stylesheet" type="text/css" href="css/bootstrap/dist/css/bootstrap.css"/>
<title>Contracts</title>
</head>
<body ng-controller= "main">
<h1>Contacts</h1>
<div ng-view></div>
<script type="text/javascript" src="js/cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript" src="js/node_modules/angular/angular.js"></script>
<script type="text/javascript" src="js/node_modules/angular-route/angular-route.js"></script>
<script type="text/javascript" src="js/ContactsModule.js"></script>
<script type="text/javascript">
app.initialize();
</script>
</body>
另外我的文件结构也很简单:
/
/pages
/pages/home.html
/pages/add.html
/pages/details.html
我有什么遗漏吗?这完全逃脱了我,我花了很多时间试图弄清楚这一点。 我也在 localhost 上进行测试。
【问题讨论】:
-
脚本加载顺序不正确。首先加载 angular.js 和相关脚本,然后加载 ContactsModule.js、index.js。试试这个
-
我刚试过,没用
-
这可能是一个有争议的问题,但您确实在
<body>标签之后关闭了您的<html>标签,对吧? -
@ShehryarAbbasi 我有,我只是在复制时忘记添加它
-
你的 app.config 不应该在你的控制器里面。您在启动 app.config 之前忘记关闭控制器
标签: javascript html angularjs cordova angular-routing