當點擊「編輯」時,我有一個打開模態頁面的網頁。情況: 使用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