在一个父子元素上同时使用ng-if,ng-repeat的情况下,怎么获取到ng-model的值?

在一个ul上面使用了ng-if,然后在li上面使用了ng-repeat,再然后里面具体上面的元素上使用了ng-model,请问怎么取到这个model值,已经在ng-model上使用了$parent,但是还是取不到值,代码如下:

<ul ng-if="datas.vote_choose_type==2">
    <li class="opt" ng-repeat="num in datas.vote_options track by $index" ng-class="{'finished':num.is_voted == 1,'1':num.is_voted == 2}">
        <input type="radio"
                class="magic " 
                name="quan1" 
                value="{{num.option_id}}" 
                id="{{num.option_id}}" 
                title="{{num.option}}" 
                ng-model="$parent.option_id"  
                ng-checked="$parent.option_id"  
                ng-class="{'magic-radio':datas.vote_choose_type==1,'magic-checkbox':datas.vote_choose_type==2}" />
        <label for="{{num.option_id}}">{{num.option}}</label>
   </li>
</ul>

已经尝试过使用ng-show,但是会影响从服务端获取的具体的某个参数值,请问各位路过的大神们,帮忙解释一下,是因为作用域的原因吗?还是其他什么原因,有什么好的方法可以解决这个问题,跪谢!!!

阅读 3.1k
1 个回答

因为子作用域的原因,只需要在ng-if下面的ng-repeat里面的ng-model上加一个$parent.$parent.你的双向数据绑定名称即可,已经测试过,暂未发现其他问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进