2014-12-29 18 views
6

Xin chào, tôi vẫn còn mới với AngularJ và đã tự hỏi liệu điều này có khả thi hay không.AngularJS chuyển tên biến phạm vi thành tham số chức năng

Trên bộ điều khiển của mình, tôi đang cố gắng tạo hàm có tham số chuỗi sẽ cho biết $ http.get cần gọi. Sau đó tôi muốn gán tham số đó trong phạm vi của mình. Ví dụ

$scope.getpartial = function(partialtype) { 
    var promise = ""; 
    switch(partialtype) { 
     case "account": 
      promise = $http.get("account url here"); 
      break; 
     case "contact": 
      promise = $http.get("contact url here"); 
      break; 
    } 
    promise.then(function(payload) { 
     $scope.XXXXXXX = payload.data; 
    }); 
} 

đâu XXXXXXX = partialtype == "tài khoản" hoặc "liên hệ"

nên kết quả sẽ được đặt và lưu trữ dưới $ scope.account và/hoặc $ scope.contact.

Điều này có thể hoặc có cách nào tốt hơn để thực hiện việc này không?

+0

$ phạm vi [partialtype] – tymeJV

+0

này hoàn toàn hoạt động, mặc dù nó có thể không được thực hành tốt nhất để sử dụng phương pháp này, trong SPA của chúng tôi đây là những gì chúng ta cần. Tôi không biết nóng để đánh dấu điều này như một câu trả lời vì đây là một bình luận. – Justin

+0

Tôi đã đăng câu trả lời nhanh - đã ở trên thiết bị di động vào thời điểm tôi nhận xét. – tymeJV

Trả lời

7

Kể từ $scope chỉ là một đối tượng với các thuộc tính, bạn có thể sử dụng ký hiệu khung:

$scope[partialtype]; 
0

Mặc dù điều này có vẻ như có thể, tôi khuyên bạn nên tạo dịch vụ Góc tùy chỉnh đóng gói logic của bạn cho các yêu cầu http. Sau đó, bạn có thể bao gồm dịch vụ của mình trong bộ điều khiển và truy cập các chức năng trong dịch vụ của mình.

Hãy xem tài liệu góc để tạo dịch vụ tùy chỉnh ở đây: Angular Documentation for Services

Các vấn đề liên quan