如何在angularjs中观察动态创建的ng-model

时间:2016-08-20 16:03:22

标签: angularjs

以下是我的HTML代码。

<div class="col-md-6">
                            <div class="col-sm-12" ng-repeat='department in vm.otherDepartments'>
                            <label class="checkbox-custom-labelother_label">
                                <div class="custom-label-div other_label">department.name</div>
                                <input type="text" name="vm.experience.custom" class="other_inputbox" ng-model="vm.experience.custom[department.id]" ng-required='!vm.experience.departments'>
                            </label>
                        </div>
                    </div>

以下是我的控制器代码:

 $scope.$watch("vm.experience.custom", function (newValue, oldValue) {
        console.log('newValue:');
        console.log(newValue);
        vm.params.validateDepartments = _.filter(newValue, function (o) {
            console.log('OOOO:');
            console.log(o);
        });
    });

所以当我更改任何输入值时,应触发$ watch。但在这种情况下不会发生这种情况。我做错了什么?

1 个答案:

答案 0 :(得分:0)

$ watch默认情况下只是一个浅表。 你必须将$ watch的第三个参数设置为&#34; true&#34;为了深入观察 - 检查对象的所有子属性。 所以你必须做到这一点

$scope.$watch ('property', function () {}, true);

在你的情况下,只有.custom本身的值发生变化才会触发$ watch函数。