AngularJS支持通过在单个页面上的多个视图的单页应用。要做到这一点AngularJS提供ng-view和尼日利亚模板指令,以及$routeProvider服务ng-view
ng-view标记只是简单地创建一个占位符,是一个相应的视图(HTML或尼日利亚模板视图),可以根据配置来放置。使用
定义一个差异与ng-view在主模块中。
div ng-app='mainApp '.分区视图/分区/分区模板
尼日利亚模板指令是用来创建使用脚本标签的超文本标记语言视图。它包含一个用于由$routeProvider映射控制器视图“id”属性。使用
定义类型作为主模块中尼日利亚模板的脚本块。
div ng-app='mainApp '.脚本类型=' text/ng-template ' id=' addstudent。html ' H2添加学生/H2 { { message } }/脚本/div $ routeProvider
$routeProvider是组网址的配置,将它们映射相应的超文本标记语言页面或ng-模板,并附加一个控制器使用相同键的服务。使用
定义类型作为主模块中尼日利亚模板的脚本块。
div ng-app='mainApp '.脚本类型=' text/ng-template ' id=' addstudent。html ' H2添加学生/H2 { { message } }/脚本/div
使用
定义主模块的脚本块,并设置路由配置。
var主app=angular。模块(' main app ',[' ngRoute ']);mainapp。config([' $ RouterProvider ',function($ RouterProvider){ $ RouterProvider .当('/addStudent ',{模板URLs : ' addStudent。html ',控制器: ' AddStudentController ' }).当('/viewStudents ',{ template URL : '查看学生时。html ',控制器: '查看学生控制器' }).否则({ redirectto : '/AddStudent ' });}]);
以下是在上面的例子中需要考虑的重要问题
$routeProvider被定义为使用关键字作为$routeProvider "下mainApp模块的配置功能;$routeProvider当定义了网址"/添加学生"映射到添加学生。html .addStudent.html应存在于相同的路径主要的超文本标记语言页面。如果超文本标记语言文件的后缀页面没有定义,那么尼日利亚模板被id="addStudent.html "使用。我们已经使用了ng-template;”否则"是用来设置的默认视图; "康略尔"是用来设置该视图对应的控制器;例子
下面的例子将展示上述所有指令。testAngularJS.html
html标题标题棱角分明JS View/title脚本src=' http :3358 Ajax。谷歌api。com/Ajax/libs/angular JS/1。2 .15/棱角分明。量滴JS '/script script src=' http :http://Ajax。谷歌api。com/Ajax/libs/angular JS/1。2 .25/角路线。量滴JS '/脚本/头dy h2angular JS示例应用程序mainapp。config([' $ RouterProvider ',function($ RouterProvider){ $ RouterProvider .当('/addStudent ',{模板URLs : ' addStudent。html ',控制器: ' AddStudentController ' }).当('/viewStudents ',{ template URL : '查看学生时。html ',控制器: '查看学生控制器' }).否则({ redirectto : '/AddStudent ' });}]);mainapp。控制器(' AddStudentController ',函数($scope) { $scope.message='此页面将用于显示添加学生表单;});mainapp。控制器(' viewserverscontroller ',函数($scope) { $scope.message='此页面将用于显示所有学生;});/脚本/正文/html结果
在网浏览器中打开textAngularJS.html。看到结果如下: