`
刘朝雪
  • 浏览: 83753 次
  • 来自: 河北
社区版块
存档分类
最新评论

ng-model 在 ng-if 里面无效

 
阅读更多



ng-if指令的功能与ng-show指令相似,都用于控制元素的显示与隐藏,但两者又有区别,ng-if指令会移除DOM原有的元素,而ng-show指令只是将元素的”display”属性值设置为”none”。因此,在使用时必须根据实际的需要进行选择性使用。

 

ng-if指令会创建一个子级作用域,因此,如果在ng-if指令中添加了元素,并向元素属性增加ng-model指令,那么ng-model指令对应的作用域属于子级作用域,而并非控制器注入的$scope作用域对象,这点在进行双向数据绑定时,需要引起注意。

 

为什么?

ng-if里面会生成一个子域,想要ng-model生效,需要在$scope创建一个子对象,才行,如$scope.obj,再将ng-model绑定到obj

 

解决问题:
1.使用ng-show(或ng-hide)可以间接解决这个问题。

 

2.使用$scope创建一个子对象

 

$scope.a = '1';//原来的代码
$scope.a = {num: '1'};//改变后

 在页面上获取

 

 

<input type="checkbox" ng-model="a">//原来的代码
<input type="checkbox" ng-model="a.num">//改变后

 

 

3.在页面添加$parent方法

 

<div ng-if="a">
            <input type="checkbox" ng-model="$parent.b">
</div>

 

 

分享到:
评论

相关推荐

    AngularJS解决ng-if中的ng-model值无效的问题

    然而,当`ng-if`与`ng-model`一起使用时,可能会遇到`ng-model`值无法更新的问题,这是因为`ng-if`创建了一个新的子作用域,导致`ng-model`在某些情况下无法正确地绑定到父作用域的属性。 首先,我们需要理解...

    AngularJS ng-model 指令

    `ng-model` 还提供了有关表单字段状态的信息,如无效(invalid)、脏(dirty)、已触碰(touched)、未触碰(untouched)、有效(valid)和无效(invalid),以及等待验证(pending)。这些状态可以帮助开发者了解...

    解决angular双向绑定无效果,ng-model不能正常显示的问题

    然而,在实际开发中,可能会遇到双向绑定无效果、`ng-model`不能正常显示的问题。本文将深入探讨这个问题,并提供解决方案。 首先,我们要理解AngularJS的双向绑定原理。它通过`$scope`对象将控制器(Controller)...

    AngularJS基础 ng-disabled 指令详解及简单示例

    4. 可以与其它AngularJS特性(如`ng-model`、`ng-if`等)结合使用,实现更复杂的逻辑。 为了更好地利用`ng-disabled`,开发者需要熟悉AngularJS的数据绑定和表达式系统,并理解如何在应用程序中创建和管理相关数据...

    AngularJS参考手册

    - **ng-if**:条件性地移除或添加元素。 - **ng-include**:在应用中包含外部HTML文件。 - **ng-init**:定义了初始化表达式的值。 - **ng-jq**:指定AngularJS应该使用哪个库(如jQuery)。 - **ng-keydown/keyup/...

    AngularJS实现注册表单验证功能

    此外,也可以使用`ng-if`来达到类似的效果。 #### 七、总结 通过上述介绍,我们可以看到AngularJS为开发者提供了一套强大而灵活的工具来处理表单验证问题。合理利用这些特性不仅能够显著提升应用程序的功能性,还...

    angularjs实现textarea文本输入字数限制功能

    在textarea中,我们可以使用`ng-model`来绑定用户的输入文本。 ```html &lt;textarea ng-model="inputText" placeholder="请输入文本"&gt; ``` 在上面的代码中,`inputText`是我们在AngularJS控制器中的一个变量,它将...

    AngularJs demo 例子(表单验证) form

    &lt;div ng-if="myForm.username.$invalid && myForm.username.$dirty"&gt; 请输入有效的用户名! ``` **5. 自定义验证** 除了内置的验证规则,还可以通过`ng-pattern`指令使用正则表达式自定义验证,或者编写自定义...

    Ionic+AngularJS实现登录和注册带验证功能

    9. ng-model指令: 在AngularJS中,ng-model指令用于在视图和模型之间创建双向数据绑定。通过ng-model指令,可以实现对输入框内容的实时获取和修改。 10. ng-show和ng-if指令: 在AngularJS中,ng-show和ng-if指令...

    Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)

    AngularJS的表单验证功能强大且易于使用,它允许开发者自定义验证规则,并通过`ng-model`、`required`、`ng-minlength`、`ng-maxlength`等指令轻松控制验证逻辑。然而,要注意的是,虽然实时验证可以提供更好的用户...

    Angularjs之ngModel中的值验证绑定方法

    在AngularJS框架中,`ngModel`是一个非常关键的指令,它实现了双向数据绑定,使得视图层(View)与模型层(Model)之间的数据可以实时同步。本文将深入探讨`ngModel`中的值验证绑定方法,以及如何在输入字段中进行...

    AngularJs表单验证实例详解

    在实际应用中,这些验证通常会与AngularJS的`ng-model`一起使用,将输入值绑定到控制器中的变量,同时,表单的状态可以通过`$valid`、`$invalid`、`$pristine`和`$dirty`等属性来监控。例如,你可以这样展示错误信息...

    form-validation-angularjs-example:如何使用 AngularJS 进行表单验证

    &lt;input type="text" ng-model="user.name" required&gt; ``` 在这个例子中,`myForm`是表单的名称,`user.name`是模型属性,`required`是表单验证指令。 ### 二、内置验证指令 AngularJS提供了一系列内置的验证指令...

    angularjs实现级联依赖验证

    这种验证机制有助于提高用户体验,因为它可以即时反馈用户输入的错误,避免提交无效的数据。在本项目中,我们将探讨如何在AngularJS环境中设置和实现级联依赖验证。 首先,我们需要了解AngularJS的基本概念。...

    AngularJS使用angular-formly进行表单验证

    提交按钮的`ng-disabled`属性检查表单是否有效,防止无效数据提交。 总的来说,angular-formly提供了一种灵活的方式来构建和验证AngularJS表单,通过定义字段数组和自定义验证规则,我们可以轻松地创建动态且具有...

    使用js框架验证用户名

    JavaScript是一种客户端脚本语言,可以在用户的浏览器上运行,因此可以实时验证用户输入,避免无效数据提交到服务器。一个简单的用户名验证可能包括检查用户名的长度、是否包含非法字符、是否已存在等条件。 例如,...

    learn-angularjs-todolist:使用 angularjs 和 nodejs 的示例待办事项列表应用程序

    2. **指令**:AngularJS 提供了自定义 HTML 元素和属性的能力,例如 `ng-repeat` 用于循环遍历数据,`ng-if` 用于条件渲染,`ng-model` 用于绑定输入控件的数据。 3. **服务**:AngularJS 服务是可注入的对象,可以...

    Angular-JS:安古勒(Anguler Js)

    例如,`ng-if`用于条件渲染,`ng-repeat`用于数据遍历,`ng-click`则用于响应用户点击事件。 ### 四、依赖注入 依赖注入(Dependency Injection,DI)是Angular中的另一关键特性,它简化了代码的组织和测试。通过...

    IEXCloud_AngularJS

    5. **指令**:AngularJS 的自定义 HTML 元素或属性,用于扩展 HTML 的功能,例如 ng-repeat 用于循环渲染数据,ng-if 或 ng-show 控制元素的显示隐藏。 6. **服务**:AngularJS 中的服务是单例对象,可以跨控制器...

Global site tag (gtag.js) - Google Analytics