程序员程序猿阵线联盟-汇总各类技术干货

解决 angularjs 数据绑定无法获取值的问题

2017-09-19  本文已影响149人  Stone_Zhuo

在使用angularjs的时候可能会出现通过$scope获取不到通过ng-mode绑定的表单元素的值,这可能是多种原因造成的,笔者遇到的情况大致如下:

代码示例

<div ng-repeat="kind in kinds">
    <label class="i-checks">
        <input type="radio" ng-model="kind" ng-value="{{ kind.id }}"><i></i> {{ kind.name }}
    </label>
</div>
console.log($scope.kind);

问题根源

radiong-model位于ng-repeat中,ng-repeat会创建自己的scope,所以在controller中通过$scope.kind获取的并不是ng-repeat中的kind而是全局的,但是全局的kind并没有定义。

解决办法

template中的ng-model="kind"调整为ng-model="$parent.kind"即可,完整的template代码为:

<div ng-repeat="kind in kinds">
    <label class="i-checks">
        <input type="radio" ng-model="$parent.kind" ng-value="{{ kind.id }}"><i></i> {{ kind.name }}
    </label>
</div>

本文首发于公众号:programmer_cc,转载请注明出处。


微信公众号.jpg
上一篇 下一篇

猜你喜欢

热点阅读