我正在阅读有关Angular JS的一些教程,我可以加载单个页面并在单个文件中执行操作,但是当我到达路由时,它将无法到达另一个页面。
这是我在app.js中拥有的东西:
var app = angular.module('tutorialApp', ["ngRoute", "tutorialCtrlModule"]);
app.config(function($routeProvider) {
$routeProvider
.when("/", {
templateUrl: "views/tutorial.html",
controller: "TutorialCtrl"
})
.when("/tutorialSecond", {
templateUrl: "views/tutorialSecond.html",
controller: "TutorialCtrl2"
})
.otherwise({
redirectTo: "/"
})
})
在我的index.html中,包括以下脚本文件:
<script src="lib/angular.min.js"></script>
<script src="lib/angular-route.min.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers/tutorialCtrl.js"></script>
然后将其放在体内:
<body>
<div ng-view></div>
</body>
在我的tutorial.html中,我有一个定义如下的链接:
<a href="#/tutorialSecond">Tutorial Second Page</a>
因此,我在加载index.html时可以看到tutorial.html的内容。 但是,当我单击“教程第二页”链接时,没有任何反应。我看到这样的URL / URI:
file:///<some_path>/AngularTutorial/index.html#!/#%2FtutorialSecond
如果我将app.js代码更改为以下内容:
.when("/", {
templateUrl: "views/tutorialSecond.html",
controller: "TutorialCtrl2"
})
当我加载index.html时,可以看到tutorialSecond.html内容显示出来。
那么,当我单击/ tutorialSecond的链接时,为什么未从其原始代码加载该链接?是因为我在本地以file://<path_to_index.html>
的身份运行和打开index.html而不在Web服务器上运行吗?
请帮助...这使我无法继续学习本教程。 我正在使用Firefox在Windows 7x64上运行,昨天才下载了最新的可用angular js文件。
谢谢。
在某些回复中添加一些其他详细信息...
在我的tutorialCtrl.js文件中,两个控制器的定义如下:
angular.module("tutorialCtrlModule", [])
.controller("TutorialCtrl", ["$scope", function($scope) {
$scope.tutorialObject = {};
$scope.tutorialObject.title = "Main Page";
$scope.tutorialObject.subTitle = "Sub title";
}
}])
.controller("TutorialCtrl2", ["$scope", function($scope) {
$scope.secondTutorial = "This is the second tutorial";
}]);
此.js文件包含在index.html中,如上所示。
答案 0 :(得分:0)
您是否创建了与tutorialCtrl2相关的脚本文件并将其包含在index.html中?
<script src="js/controllers/tutorialCtrl2.js"></script>
答案 1 :(得分:0)
您的function! s:syntastic_checkers(...)
redir => output
silent SyntasticInfo
redir END
let result=split(output, "\n")
let checkers=split(split(result[-2], ':')[-1], '\s\+')
if checkers[0]=='-'
let checkers=[]
else
call extend(checkers, split(split(result[-1], ':')[-1], '\s\+')[:1])
endif
if a:0 "just echo the result
echo 'Checkers: '.join(checkers, ', ')
else
return checkers
endif
endfunction
command! SyntasticCheckers
不包含脚本index.html
,并且您可以使用tutorialCtrl2.js
告诉angular使用HTML5策略(如果可用)。
以下是支持HTML5策略的浏览器列表:http://caniuse.com/#feat=history