Tôi cũng gặp lỗi này.
Bạn được phép tiêm $location
vào bộ điều khiển, nhưng không phải a $locationProvider
.
Thay vào đó, $locationProvider
có thể được tiêm vào một phương pháp config
:
var app = angular.module("myApp", []);
app.config(function($locationProvider) {
$locationProvider.html5Mode(true);
});
app.controller("myCtrl", function($location) {
$location.path("/some/path");
});
Và kể từ khi tôi làm sai lầm bổ sung này: nó không chỉ là bạn nên thêm một chút app.config
, nhưng cũng nhớ để loại bỏ $locationProvider
từ đối số điều khiển, hoặc bạn sẽ tiếp tục nhận được lỗi này.
Nếu tôi hiểu chính xác mọi thứ, cấu hình nhà cung cấp sẽ xảy ra trong giai đoạn cấu hình của vòng đời ứng dụng, trái ngược với pha chạy. Vì vậy, sự tách biệt này. You can read a bit more about these phases here.
Tôi nghi ngờ rằng lý do cho thông báo lỗi là khi bạn tiêm $foo
vào bộ điều khiển, hãy tìm kiếm $fooProvider
. Vì vậy, khi chúng tôi tiêm $locationProvider
, nó đã tìm kiếm $locationProviderProvider
.
Nguồn
2014-06-07 15:47:19
Tôi nghi ngờ nó được tiêm, vì nó được sử dụng để tiêm một thể hiện của dịch vụ vị trí $. Có hàm băm getter/setter ([hash]); phương pháp trong dịch vụ vị trí $, nó có thể giúp bạn làm bất cứ điều gì bạn muốn. Nếu không, bạn nên giải thích ý định sử dụng hashPrefix của $ locationProvider. –
@CemOzer Tôi đang thực hiện dịch vụ Reverse Url (ví dụ: tạo url từ tên tuyến đường), vì vậy tôi cần biết cách cấu hình dịch vụ vị trí hoàn toàn chung chung. –
Tôi không thể nói rằng tôi hiểu ý định của bạn về việc "tạo một url từ tên tuyến đường", bạn có thể đưa ra một nghiên cứu điển hình hay không. –