为了账号安全,请及时绑定邮箱和手机立即绑定

这个表单验证的例子要是用路由怎么写

按前面的路由的例子将项目分成若干模块,指令控制器都是在专门的controllers.js和directives.js中写好通过app.js注入,但是写好时候验证不生效,但是按照视频中写成单文件验证就可以,哪位大神可以给个路由版的例子。

正在回答

1 回答

写成多个文件就是要定义不同的模块,然后在主模块中引用,官方的文档说,angular.module是全局的方法用来创建,注册,检索模块。应用中所有可用的模块都必须使用这个机制来注册。当分开到各个文件中写时,最大的问题就是各个文件加载顺序没有办法保证,为了可以安全的分开到各个文件中编写controller / filter 等,需要在各个文件中都实现一个模块,然后主模块依赖这些模块,主模块会等依赖的所有模块都加载完成之后才会执行。

// app.js
// 此处在第二个参数中引入需要依赖的模块
let myapp = angular.module('myapp',['TestFormModule'])

// 实现路由,以下的控制器都没有定义,随便写的
myapp.config(function($routeProvider){
	$routeProvider.when('/',{
		controller:"index",
		templateUrl:"./tpls/index.tpl",
	}).when('/hello',{
		controller:"hello",
		templateUrl:"./tpls/hello.tpl"
	}).when('/exit',{
		controller:"exit",
		templateUrl:"./tpls/exit.tpl"
	}).otherwise({
		redirectTo:"/"
	})
})

// controller.js
// 重点在这里,新定义了一个模块
let TestFormModule = angular.module('TestFormModule',[]);
TestFormModule.controller('TestFormModule', function($scope){
	$scope.user = {}
	$scope.user.username="小明"

	$scope.save = function(){
		console.log('save')
	}
})

// directive.js
// 新定义了一个模块
let myappDirective = angular.module('myappDirective',[]);
myappDirective.directive("hello", function(){
    // TODO
})

我猜你失败的原因可能是在各个文件中没有定义模块。我猜测。

你要的“路由版的例子”是什么意思??- - 

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
AngularJS实战
  • 参与学习       205465    人
  • 解答问题       1158    个

一起学习AngularJS的基础教程,通过实例学习并学会AngularJS

进入课程

这个表单验证的例子要是用路由怎么写

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信