当点击“编辑”时,我有一个打开模态页面的网页。情况: 使用Angular JS ng-repeat,我显示了一个名为customer的对象列表;当传递给函数时,对象中的Javascript数组为空
<div class="col-sm-6" ng-repeat="Cust in Customers | filter: filterCustomers">
//code omitted for clarity
<buton class="btn btn-default btn-xs" ng-click="openEditDialog(Cust);">Edit<i class="fa fa-pencil pull-right"></i></buton>
对象客户以这种方式设置;
{
"ID" : 1,
"Name" : "Test",
"City" : "Test",
"CountryCode" : "NLD",
"CurrencyCode" : "EUR",
"empAgencies" : [{
"ID" : 1,
"Name" : "Test",
"NumberOfEmployees" : 0,
"customers" : []
}, {
"ID" : 2,
"Name" : "Test1",
"NumberOfEmployees" : 0,
"customers" : [{
"ID" : 4,
"Name" : "TestC",
"City" : "Test",
"CountryCode" : "NLD",
"CurrencyCode" : "EUR",
"empAgencies" : []
}
]
}
]
}
请注意,顾客< - > EmpAgency是许多人在我的MVC一对多的关系,我不知道这有什么关系的问题。 问题出在openEditDialog(Cust);功能
function openEditDialog(Cust) {
$scope.editedCustomer = Cust;
console.log($scope.editedCustomer);
$uibModal.open({
templateUrl: 'scripts/spa/customer/editCustomerModal.html',
controller: 'editCustomerCtrl',
scope: $scope
}).result.then(function ($scope) {
search($scope.page);
}, function() {
search($scope.page);
});
}
以下对象传递给这个函数:
Object {ID: 1, Name: "Test", City: "Test", CountryCode: "NLD", CurrencyCode: "EUR"…}
//omitted
empAgencies:Array[0]
正如你可以看到包含empAgencies数组被清空出于某种原因。正因为如此我dropdownbox选择属性不正确填充(包含empAgencies的完整列表)
你有没有尝试删除过滤器'filterCustomers'? – Pietro
@Pietro谢谢,我刚刚尝试过。这没有改变。 – Brian
它看起来像阵列empAgencies只在完全加载模态页面后才被清空。我在我的模态页面上加载了一个Cust对象的快照,并在其中加载了所有的主管部门。我不知道这是否有任何帮助 – Brian