我有一个问题,当我只是console.log($scope.visitors)
我的数据没问题,但是当我console.log($scope.visitors)
然后尝试打开AngularUI Bootstrap对话框时,$scope.visitors.optionalFields
对象是空的。
现在,我花了一些时间试图在jsbin中复制这个问题而且我无法让它发生,所以可能很难回答;只是希望有人可能知道可能导致它的原因。
所以我有一个像这样的对象数组:
$scope.visitors = [
{
company:"one",
optionalFields: {
passportNumber:"ppt",
contactNumber:"tel",
licensePlate:"1234"
},
firstName:"some",
lastName:"guy",
}
]
ng-repeat
visitor in visitors
通过这些ng-click="editVisitorDialog(visitor)"
,每个人都有$scope.editVisitorDialog = function (visitor) {
console.log($scope.visitors);
console.log(visitor);
}
的按钮
现在,如果我像这样制作editVisitorDialog:
$scope.visitors
然后visitor
和$scope.visitors
看起来都很好,他们拥有所有属性。
但是,如果我只是添加到此函数(即,日志调用仍然位于函数的顶部),optionalFields
中的每个访问者都将有一个空的$scope.editVisitorDialog = function (visitor) {
console.log($scope.visitors); // missing the optionalFields items
console.log(visitor); // missing the optionalFields items
var modalInstance = $modal.open({
templateUrl: 'app/checkin/edit_visitor/edit_visitor.html',
controller: EditVisitorController,
resolve: {
visitor: function () {
return visitor;
}
}
});
modalInstance.result.then(function (result) {
console.log(result)
}, function () {
});
}
对象。
{{1}}
答案 0 :(得分:1)
当您使用对象调用console.log()
时,它并未真正记录该对象。它更像是一个检查工具,您可以看到当前状态,而不是console.log()
被调用时的状态。
请尝试console.log(visitor.optionalFields.passportNumber)
,我保证会记录" ppt" (在你的例子中)。
这反过来意味着在添加的代码中有些可选字段会丢失。