我有一个快速的问题,关于加载外部页面的路由。我对AngularJS很陌生。
var app = angular.module('app', []);
$routeProvider.when('/list', {
templateUrl: '/list.html'
})
加载页面,但是在list.html中定义了控制器。
list.html:
<script>
app.controller('test', function(){
console.log('test');
});
</script>
<div ng-controller="test">
</div>
上面的代码会抛出一个错误,因为test是未定义的函数,除非我将app.controller('test')
放置到父页面。
所以我不能把控制器放在外部的.html文件上?
发布于 2014-05-17 03:10:59
您必须创建一个单独的script.js,并在执行主页或单击链接时加载主html页面。
index.html
<!DOCTYPE html>
<html ng-app="app">
<head>
<link rel="stylesheet" href="style.css">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>
<script src="script.js"></script>
<script src="testscript.js"></script>
</head>
<body ng-controller="home">
<h1>Hello Plunker! {{change}}</h1>
<a href="#/test" ng-click="test()" title="Click Test">Test</a>
<ng-view></ng-view>
</body>
</html>
testscript.js
function test2($scope){
console.log('succeed');
};
script.js
// Code goes here
var app = angular.module('app', ['ngRoute']);
app.controller('home', function($scope){
$scope.change = "change";
$scope.test = function(){
console.log('clicked');
}
});
app.config(function($routeProvider){
$routeProvider.when('/test', {
templateUrl: 'test.html',
controller: function(){
console.log('here');
}
})
});
https://stackoverflow.com/questions/22754114
复制相似问题