değer sağlayıcısının/değişim angularjs değerini nasıl geçersiz kılınır, bazı servis/denetleyici içindeBen zamanında</p> <pre><code>angular.module("data", []).value('apiBase', '/api1/data') </code></pre> <p>değer-geçersiz kılmak istediğiniz
angular.module("data").value('apiBase', '/someotherapi/data')
Kurun- bunu değiştirmeye çalıştı, ancak Başarısız, apiBase değerini geçersiz kılmadı.
Denetleyiciye apiBase
numaralı iğneyi enjekte etmeyi denedim ve değiştirdim. başarısız oldu. O inşaat
angular.module('data').controller(function(apiBase){apiBase.api_base_url = '/someotherapi/data'})
:
Sonraangular.module("data", []).value('apiBase', {"api_base_url":"/api1/data"})
durumda kontrol ünitesine değiştirerek gibi bir nesneye apiBase içerikle tanımlar değiştirmek çalıştı. Bu yüzden sorum şu: neden
angular.module('data').value('samekey', 'newvalue')
değeri geçersiz kılmadı? neden sadece bir dize/sayı olduğunda (birincil tür. Ikinci deneme) değeri değiştiremiyor. Benim görüşüme göre
Value
sağlayıcısı bekar, değişmelidir.
Bir denetleyici içindeki bir modül düzeyi hizmet/sağlayıcısını/değerini değiştirmek hiç doğru olmaz. Eğer değerin değişmesi gerekiyorsa, onu bir hizmete sarmak ve ayarlayıcı/alıcıya sahip olmak daha kolaydır. Uygulama çalışırken bir singleify'ın üzerine yazılmasına izin vermek mantıklı olmaz. – GillesC
Çalışma aşamasında enjekte edilen bağımlılığın değerini değiştirmek neredeyse doğru bir yaklaşım değildir. Denetleyicileri/hizmetleri/etc arasında geçiş yapmaya çalışıyorsanız, [olayları] kullanmayı düşünün (https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$emit). –