aboutsummaryrefslogtreecommitdiffstats
path: root/src/Angular.js
diff options
context:
space:
mode:
authorMisko Hevery2010-10-08 17:30:13 -0700
committerMisko Hevery2010-10-12 16:33:06 -0700
commitd9abfe8a7e488be8725f56077527b16f7c79546a (patch)
tree67089c5d2059e7a56afab0fec19dbce76fdab798 /src/Angular.js
parentfbfd160316de1b99e7afa4102c7fae2ee5b9c1f5 (diff)
downloadangular.js-d9abfe8a7e488be8725f56077527b16f7c79546a.tar.bz2
Introduced injector and $new to scope, and injection into link methods and controllers
- added angular.injector(scope, services, instanceCache) which returns inject - inject method can return, instance, or call function which have $inject property - initialize services with $creation=[eager|eager-publish] this means that only some of the services are now globally accessible - upgraded $become on scope to use injector hence respect the $inject property for injection - $become should not be run multiple times and will most likely be removed in future version - added $new on scope to create a child scope - $inject is respected on constructor function - simplified scopes so that they no longer have separate __proto__ for parent, api, behavior and instance this should speed up execution since scope will now create one __proto__ chain per scope (not three). BACKWARD COMPATIBILITY WARNING: - services now need to have $inject instead of inject property for proper injection this breaks backward compatibility - not all services are now published into root scope (only: $location, $cookie, $window) - if you have widget/directive which uses services on scope (such as this.$xhr), you will now have to inject that service in (as it is not published on the root scope anymore)
Diffstat (limited to 'src/Angular.js')
-rw-r--r--src/Angular.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Angular.js b/src/Angular.js
index f7351bdc..5bffac53 100644
--- a/src/Angular.js
+++ b/src/Angular.js
@@ -330,6 +330,10 @@ function escapeAttr(html) {
'"');
}
+function concat(array1, array2, index) {
+ return array1.concat(slice.call(array2, index, array2.length));
+}
+
function bind(self, fn) {
var curryArgs = arguments.length > 2 ? slice.call(arguments, 2, arguments.length) : [];
if (typeof fn == $function) {
@@ -403,7 +407,7 @@ function angularInit(config){
// TODO default to the source of angular.js
var scope = compile(window.document, _null, {'$config':config});
if (config.css)
- scope.$browser.addCss(config.base_url + config.css);
+ scope.$inject('$browser').addCss(config.base_url + config.css);
scope.$init();
}
}