首页 > Web开发 > 详细

AngularJS ng-model在ng-if里面无效

时间:2015-12-05 12:49:33      阅读:1056      评论:0      收藏:0      [点我收藏+]

参考stackflow原文。

问题:

Here is the fiddle showing the problem. http://jsfiddle.net/Erk4V/1/

It appears if I have an ng-model inside of an ng-if, the model does not work as expected.

I am wondering if this is a bug or if I am misunderstanding the proper usage.

<div ng-app >
    <div ng-controller="main">

        Test A: {{testa}}<br />
        Test B: {{testb}}<br />
        Test C: {{testc}}<br />

        <div>
            testa (without ng-if): <input type="checkbox" ng-model="testa" />
        </div>
        <div ng-if="!testa">
            testb (with ng-if): <input type="checkbox" ng-model="testb" />
        </div>
        <div ng-if="!someothervar">
            testc (with ng-if): <input type="checkbox" ng-model="testc" />
        </div>

    </div>
</div>

回答:

The ng-if directive, like other directives creates a child scope. See this fiddle:http://jsfiddle.net/Erk4V/4/

So, your checkbox changes the testb inside of the child scope, but not the outer parent scope.

Note, that if you want to modify the data in the parent scope, you‘ll need to modify the internal properties of an object like in the last div that I added.

 

 

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

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

 

AngularJS ng-model在ng-if里面无效

原文:http://www.cnblogs.com/leekenky/p/5021196.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!