以下是我的目标:
$scope.obj = {
name: null,
child: { name : name}
};
<input type="text" ng-model="obj.name" />
所以我在这里尝试的是当我的obj.name属性中有最新值时,它应该自动反映在obj.child.name属性中。
我总是想使用更新的值,并且我只使用obj.child.name属性,所以稍后如果我忘了分配如下:
$scope.obj.child.name = $scope.obj.name
然后它将始终使用旧值,我不想在很多地方这样做,所以我希望这个过程自动化,就像名称$ scope.obj.name将被更新时,它应该自动更新$ scope.obj。 child.name
但是上面的代码我收到错误:名称未定义
为什么上述声明不可能以及如何实现?
答案 0 :(得分:1)
您正在 name
undefined
,因为JavaScript正在尝试在全局范围内查找name
对象,并且可以找不到它,在这段代码中:
child: { name : name//undefined}
这是你如何定义它:
$scope.obj = {
name: "Ay"
};
$scope.obj.child = {
name: $scope.obj.name
}
我们将在$scope.obj.name
属性声明中引用child
,以便正确绑定。
答案 1 :(得分:0)
你宣布错误:
$scope obj = {
name: null,
child: { name : name}
};
应该是
$scope.obj = {
name: null,
child: { name : name}
};