发表于: 2017-05-25 22:25:24

1 956


今天完成的事情:

完成js任务demo,修改demo中出现的问题。


明天的计划:

准备小课堂。


遇到的问题:

1 两个级联的选择框其中一个出现ng-model获取不了值,或者输入验证失败(不能验证有填写记录):

第一个下拉框:

<select class="form-control" name="select" ng-model="selectType"  ng-options="x.value as x.name for x in typeOptions" required></select>

第二个下拉框:

<select class="form-control" name="select" ng-if="selectType === 3"  ng-model="industryType" ng-options="x.value as x.name for x in industryOptions"  required></select>

 当 ng-if="selectType === 3"  不成立时,无法对主下拉框进行已输入验证。

在ng-if方式中,每个包含的元素都拥有自己的作用域,因此,复选框元素也拥有自己的$scope作用域。相对于控制器作用域来说,这个作用域属于一个子级作用域,所以,如果它想绑定控制器中的变量值,必须添加$parent标识,只有这样才能访问到控制器中的变量。

解决ng-if中ng-model值无效的问题,主要方法就是在绑定值时添加$parent标识,或者用ng-show指令代替ng-if指令(该环境下不能),这两种方法都可以达到同样的页面效果。

ng-if,ng-show的理解:

官方解释ng-if :表达式内值为true是,生成标签内的DOM,否则移除

官方解释ng-show:表达式内值为true是,显示标签内的DOM,否则隐藏

但是在复杂的生产环境中,并不是我之前理解的那样;

ng-if 表达式内的值初始为false的时候 他里面的由input的 model绑定的scope是不会存在作用域里面的,当if的值为true的时候,相当于生成了一个新的SCOPE值,但是原先的watch仍然是检测不到新生成的model的值的。


收获:

表单验证未通过时使用禁用按钮,之前没有作郭这方面的验证,一直是直接发送填写信息给后台,然后返回登录失败的信息,这样会加大服务器的压力。



返回列表 返回列表
评论

    分享到