发表于: 2017-05-17 21:08:49

1 420


今天完成的事情:

完成index一个总的页面的布局,依赖,路由配置,能够实现页面跳转。跳转到一个有导航栏的页面。

 

明天计划的事情:

表单中的各种ng啥的验证。

 

遇到的问题:

表单中账号密码框不需要发往后台验证吧,只要在input框中写ng啥的判断就好么?

.ng-valid         {  }

.ng-invalid     {  }

.ng-pristine     {  }

.ng-dirty         {  }

 

收获:

 

首先给大家介绍angular-ui-router的基本用法。

 

如何引用依赖angular-ui-router

angular.module('app',["ui.router"])

.config(function($stateProvider){

$stateProvider.state(stateName, stateCofig);

})

 

$stateProvider.state(stateName, stateConfig)

 

stateNamestring类型 写的是浏览器地址栏上的加的

stateConfigobject类型 这里写配置

//statConfig可以为空对象

$stateProvider.state("home",{});

//state可以有子父级

$stateProvider.state("home",{});

$stateProvider.state("home.child",{})

//state可以是链式的

$stateProvider.state("home",{}).state("about",{}).state("photos",{}); 这种很常用,写多个页面

 

stateConfig包含的字段:template, templateUrl, templateProvider, controller, controllerProvider, resolve, url, params, views, abstract, onEnter, onExit, reloadOnSearch, data

 

$urlRouteProvider

 

$urlRouteProvider.when(whenPath, toPath)

$urlRouterProvider.otherwise(path) 这要用这个,也就用这个,用来在路径没有匹配的路由的时候,跳转到一个默认的路径,就这一个功能。

$urlRouteProvider.rule(handler)

 

关于stateConfigresolve用法

 

ng-route模块中的when()ui-routestate()都提供了resolve属性。

为什么需要使用resolve

当路由切换的时候,被路由的页面中的元素(标签)就会立马显示出来,同时,数据会被准备好并呈现出来。但是注意,数据和元素并不是同步的,在没有任何设置的情况下,AngularJS默认先呈现出元素,而后再呈现出数据。这样就会导致页面会被渲染两遍,导致“页面UI抖动”的问题,对用户不太友好。resolve的出现解决了这个问题。

resolve是干嘛用的 resolve属性里的值会在路由成功前被预先设定好,然后注入到控制器中。通俗地将,就是等

数据都“就位”后,才进行路由(其实我觉得也不能叫路由,因为路由是一些列的操作,其中就包括了设置resolve属性等等)。这样的好处就是页面仅会被渲染一遍。

 

除此之外还可以借助$ocLazyLoad动态加载jscss

在实际项目中servicecontroller文件都是通过ocLazyLoad加载,并且是放在resolve中加载。

 

 

 

 

表单验证<AngularJs>

http://www.cnblogs.com/rohelm/p/4033513.html

 

1. 必填项验证

某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可:

<input type="text" required />  

 

2. 最小长度

验证表单输入的文本长度是否大于某个最小值,在输入字段上使用指令ng-minleng= "{number}"

<input type="text" ng-minlength="5" />

 

3. 最大长度

验证表单输入的文本长度是否小于或等于某个最大值,在输入字段上使用指令ng-maxlength="{number}"

<input type="text" ng-maxlength="20" />

 

<div>

  <div>

    <label for="minlength">2.最小长度=5</label>

  </div>

    <div>

      <input type="text" id="minlength" ng-minlength="5" ng-model="user.minlength" />

    </div>

</div>

2.最小长度=5:{{user.minlength}}<br>

 

 

 

在测试中我们发现,只有当表达式满足验证,才会实时进行双向绑定

 

实例

 


 

 

 

经过验证的表单

 

布尔型属性,它指示表单是否通过验证。如果表单当前通过验证,他将为true

formName.inputFieldName.$valid

 

未通过验证的表单

formName.inputFieldName.$invalid

 

还没搞完,差显示提示



返回列表 返回列表
评论

    分享到