我尝试使用<ng-view>
指令部分视图我在局部视图中使用了另一个控制器,部分视图文件中有控制器脚本,但它不起作用,它在控制台中显示错误。
以下是代码
的index.html
<!DOCTYPE html>
<html>
<head>
<link data-require="bootstrap-css@3.3.6" data-semver="3.3.6" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" />
<script data-require="angular.js@1.5.8" data-semver="1.5.8" src="https://code.angularjs.org/1.5.8/angular.js"></script>
<script data-require="angular-route@1.5.8" data-semver="1.5.8" src="https://code.angularjs.org/1.5.8/angular-route.js"></script>
<link rel="stylesheet" href="style.css" />
<script>
var testApp = angular.module("testApp", ["ngRoute"]).config(function ($routeProvider) {
$routeProvider.when("/table", {
templateUrl: "tab1.html"
});
$routeProvider.when("/tab2", {
templateUrl: "tab2.html"
});
$routeProvider.when("/tab3", {
templateUrl: "tab3.html"
});
$routeProvider.when("/tab4", {
templateUrl: "tab4.html"
});
$routeProvider.otherwise({
templateUrl: "tab1.html"
});
});
testApp.controller('testCtl',function($scope,$location){
$scope.check = function(selectedView){
return selectedView == $location.path();
}
});
</script>
</head>
<body ng-app="testApp" ng-controller="testCtl">
<ul class="nav nav-tabs" style="margin-bottom: 15px;">
<li role="presentation" ng-class="{ active: check('/tab1')}"><a href="#/tab1">Tab ONE</a></li>
<li role="presentation" ng-class="{ active: check('/tab2')}"><a href="#/tab2">Tab TWO</a></li>
<li role="presentation" ng-class="{ active: check('/tab3')}"><a href="#/tab3">Tab THREE</a></li>
<li role="presentation" ng-class="{ active: check('/tab4')}"><a href="#/tab4">Tab FOUR</a></li>
</ul>
<ng-view>
</body>
</html>
tab1.html
<script>
angular.module("testApp").controller('tabOneCtl',function($scope){
$scope.meta = "something";
});
</script>
<div ng-controller="tabOneCtl">
This is tab one and this tab has meta values which are shown below
{{meta}}
</div>
meta没有绑定,而是我在控制台中收到错误。
Error: [ng:areq] Argument 'tabOneCtl' is not a function,
got undefinedhttp://errors.angularjs.org/1.5.8/ng/
areq?p0=tabOneCtl&p1=not%20a%20function%2C%20got%20undefined
我做错了什么?
以下是plunker
的链接答案 0 :(得分:1)
尝试将控制器添加到初始页面。我不相信当渲染局部视图时,脚本标签将及时执行,以便控制器用angular实例化。虽然我不是100%肯定的。我不认为将控制器放在部分视图上的脚本标记中是最佳做法。
在外部JavaScript文件中使用角度应用程序代码可以更容易地阅读和运行缩小等内容。
希望有所帮助。