Điều tôi đang cố gắng thực hiện là có ba khác nhau < chọn > các menu sẽ được gắn vào cùng một dữ liệu. Thay đổi menu chọn đầu tiên, sẽ thay đổi dữ liệu của menu 2 và 3.Chuyển đổi mô hình dữ liệu trong AngularJS cho các menu chọn động
Đây là bên trong điều khiển của tôi:
$scope.data = [
{
"id" : "0",
"site" : "Brands Hatch",
"buildings" : [
{ "building" : "Building #1" },
{ "building" : "Building #2" },
{ "building" : "Building #3" }
],
"floors" : [
{ "floor" : "Floor #1" },
{ "floor" : "Floor #2" },
{ "floor" : "Floor #3" }
]
},{
"id" : "1",
"site" : "Silverstone",
"buildings" : [
{ "building" : "Building #4" },
{ "building" : "Building #5" },
{ "building" : "Building #6" }
],
"floors" : [
{ "floor" : "Floor #4" },
{ "floor" : "Floor #5" },
{ "floor" : "Floor #6" }
]
}
];
Dưới đây là những gì tôi đã cố gắng từ một tài liệu tham khảo cho đến nay, trong đó sử dụng cùng một ý tưởng tôi cần: http://codepen.io/adnan-i/pen/gLtap
Khi tôi chọn 'Brands Hatch 'hoặc' Silverstone 'từ menu đầu tiên đầu tiên, hai trình đơn khác sẽ có thay đổi/cập nhật dữ liệu của chúng tương ứng với dữ liệu chính xác. Tôi đang sử dụng $ xem để nghe các thay đổi mà tôi đã thực hiện từ liên kết CodePen ở trên.
Đây là ngắm kịch bản (chưa sửa đổi và rõ ràng là không làm việc):
$scope.$watch('selected.id', function(id){
delete $scope.selected.value;
angular.forEach($scope.data, function(attr){
if(attr.id === id){
$scope.selectedAttr = attr;
}
});
});
Theo như tôi biết, điều này xóa dữ liệu hiện hành về sự thay đổi, sau đó vòng qua scope.data$ và nếu attr .id khớp với id được truyền vào hàm, nó đẩy dữ liệu trở lại phạm vi cập nhật các khung nhìn. Tôi chỉ thực sự bị mắc kẹt về cấu trúc này và sẽ đánh giá cao một số hướng dẫn và giúp đỡ như tôi thực sự mới để AngularJS. Cảm ơn bạn! :)
jsFiddle cho toàn bộ hoạt động nếu có ai có thể giúp đỡ: http://jsfiddle.net/sgdea/
Wow , cảm ơn bạn rất nhiều John! – Halcyon991
Không sao, vui lòng giúp đỡ. –
Nếu tôi chỉ muốn sử dụng các tùy chọn chọn mặc định thì sao? Đó là, tôi không bao giờ muốn thấy một "tùy chọn trống". Điều gì xảy ra nếu tôi cũng muốn khả năng tự động cập nhật 'select-1' và' select-2' trong bộ điều khiển thông qua một hàm. Làm thế nào tôi sẽ đi về xử lý hai senarios? Đây là một ngã ba của vấn đề: http://jsfiddle.net/7Kzgr/ –