mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-01-12 22:45:52 +08:00
@@ -597,7 +597,10 @@ function createInjector(modulesToLoad) {
|
||||
invoke: invoke,
|
||||
instantiate: instantiate,
|
||||
get: getService,
|
||||
annotate: annotate
|
||||
annotate: annotate,
|
||||
has: function(name) {
|
||||
return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,13 +51,9 @@ function $AnimationProvider($provide) {
|
||||
*/
|
||||
return function $animation(name) {
|
||||
if (name) {
|
||||
try {
|
||||
return $injector.get(camelCase(name) + suffix);
|
||||
} catch (e) {
|
||||
//TODO(misko): this is a hack! we should have a better way to test if the injector has a given key.
|
||||
// The issue is that the animations are optional, and if not present they should be silently ignored.
|
||||
// The proper way to fix this is to add API onto the injector so that we can ask to see if a given
|
||||
// animation is supported.
|
||||
var animationName = camelCase(name) + suffix;
|
||||
if ($injector.has(animationName)) {
|
||||
return $injector.get(animationName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,15 @@ describe('injector', function() {
|
||||
});
|
||||
|
||||
|
||||
it('should allow query names', function() {
|
||||
providers('abc', function () { return ''; });
|
||||
|
||||
expect(injector.has('abc')).toBe(true);
|
||||
expect(injector.has('xyz')).toBe(false);
|
||||
expect(injector.has('$injector')).toBe(true);
|
||||
});
|
||||
|
||||
|
||||
it('should provide useful message if no provider', function() {
|
||||
expect(function() {
|
||||
injector.get('idontexist');
|
||||
|
||||
Reference in New Issue
Block a user