không có những thứ như en biến vironment trong trình duyệt.
Dịch vụ $location
luôn nhận URL hiện tại của bạn. Tôi đoán rằng API của bạn có thể tồn tại trên một máy chủ lưu trữ khác.
Có thể mô phỏng các biến môi trường bằng cách lưu trữ cấu hình trong một hằng số Góc.
app.constant('env', {
API_URL: "http://someurl.com:8080/api"
});
Sau đó, bạn có thể đưa số này vào các nhà cung cấp khác của mình.
app.controller('MyController', function($http, env) {
$http.get(env.API_URL);
});
Đây là bài viết phong nha về best practices with constants. Bài viết không ủng hộ việc sử dụng hằng số, vì nó có ích để có thể sửa đổi cấu hình mà không cần phải xây dựng lại mã.
Cách tôi thường xử lý việc này là di chuyển tất cả chi tiết cấu hình cá thể ra tệp config.json
, sau đó tải tệp đó bằng $http
khi tôi khởi động ứng dụng của mình.
Ví dụ: bạn có thể có tệp cấu hình như thế này.
{
apiUrl: "http://someurl.com:8080/api"
}
Sau đó, một dịch vụ Góc tải nó.
app.service('Config', function($http) {
return function() {
return $http.get('config.json');
};
});
Sau đó, các dịch vụ khác có thể giữ lời hứa, sẽ hiển thị cấu hình khi được giải quyết.
app.controller('MyController', function($http, Config) {
Config()
.then(function(config) {
$http.get(config.apiUrl);
});
});
* "Tôi muốn địa chỉ api là biến môi trường" *. Giải thích điều này tốt hơn. – dfsq