aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMisko Hevery2012-05-18 15:26:09 -0700
committerMisko Hevery2012-06-02 14:51:03 -0700
commit8aa18f0ad036fd4f2dc26f54d80754c70232b4f7 (patch)
treecc2eecd0b7a252ae372bc6c67605ae970984262a
parent85632cb44c95617d73c369f3a03fb476a4d5c8a2 (diff)
downloadangular.js-8aa18f0ad036fd4f2dc26f54d80754c70232b4f7.tar.bz2
chore($location) switch to use $rootElement
-rw-r--r--src/ng/location.js8
-rw-r--r--src/ng/rootElement.js3
-rw-r--r--test/ng/locationSpec.js23
3 files changed, 19 insertions, 15 deletions
diff --git a/src/ng/location.js b/src/ng/location.js
index 54abf6cb..c7b41605 100644
--- a/src/ng/location.js
+++ b/src/ng/location.js
@@ -405,7 +405,7 @@ function locationGetterSetter(property, preprocess) {
*
* @requires $browser
* @requires $sniffer
- * @requires $document
+ * @requires $rootElement
*
* @description
* The $location service parses the URL in the browser address bar (based on the {@link https://developer.mozilla.org/en/window.location window.location}) and makes the URL available to your application. Changes to the URL in the address bar are reflected into $location service and changes to $location are reflected into the browser address bar.
@@ -468,8 +468,8 @@ function $LocationProvider(){
}
};
- this.$get = ['$rootScope', '$browser', '$sniffer', '$document',
- function( $rootScope, $browser, $sniffer, $document) {
+ this.$get = ['$rootScope', '$browser', '$sniffer', '$rootElement',
+ function( $rootScope, $browser, $sniffer, $rootElement) {
var currentUrl,
basePath = $browser.baseHref() || '/',
pathPrefix = pathPrefixFromBase(basePath),
@@ -487,7 +487,7 @@ function $LocationProvider(){
var u = currentUrl,
absUrlPrefix = composeProtocolHostPort(u.protocol(), u.host(), u.port()) + pathPrefix;
- $document.bind('click', function(event) {
+ $rootElement.bind('click', function(event) {
// TODO(vojta): rewrite link when opening in new tab/window (in legacy browser)
// currently we open nice url link and redirect then
diff --git a/src/ng/rootElement.js b/src/ng/rootElement.js
index 7b72c2de..20e5bfc4 100644
--- a/src/ng/rootElement.js
+++ b/src/ng/rootElement.js
@@ -11,3 +11,6 @@
* location where the applications {@link angular.module.AUTO.$injector $injector} service gets
* published, it can be retrieved using `$rootElement.injector()`.
*/
+
+
+// the implementation is in angular.bootstrap
diff --git a/test/ng/locationSpec.js b/test/ng/locationSpec.js
index b866b1e3..46079ea6 100644
--- a/test/ng/locationSpec.js
+++ b/test/ng/locationSpec.js
@@ -498,8 +498,8 @@ describe('$location', function() {
// html5 history enabled, but not supported by browser
describe('history on old browser', function() {
- afterEach(inject(function($document){
- dealoc($document);
+ afterEach(inject(function($rootElement){
+ dealoc($rootElement);
}));
it('should use hashbang url with hash prefix', function() {
@@ -532,8 +532,8 @@ describe('$location', function() {
// html5 history enabled and supported by browser
describe('history on new browser', function() {
- afterEach(inject(function($document){
- dealoc($document);
+ afterEach(inject(function($rootElement){
+ dealoc($rootElement);
}));
it('should use new url', function() {
@@ -681,7 +681,6 @@ describe('$location', function() {
function configureService(linkHref, html5Mode, supportHist, attrs, content) {
module(function($provide, $locationProvider) {
- var jqRoot = jqLite('<div></div>');
attrs = attrs ? ' ' + attrs + ' ' : '';
// fake the base behavior
@@ -692,14 +691,16 @@ describe('$location', function() {
}
link = jqLite('<a href="' + linkHref + '"' + attrs + '>' + content + '</a>')[0];
- root = jqRoot.append(link)[0];
- jqLite(document.body).append(jqRoot);
-
- $provide.value('$document', jqRoot);
$provide.value('$sniffer', {history: supportHist});
$locationProvider.html5Mode(html5Mode);
$locationProvider.hashPrefix('!');
+ return function($rootElement, $document) {
+ $rootElement.append(link);
+ root = $rootElement[0];
+ // we need to do this otherwise we can't simulate events
+ $document.find('body').append($rootElement);
+ };
});
}
@@ -711,11 +712,11 @@ describe('$location', function() {
}
function initLocation() {
- return function($browser, $location, $document) {
+ return function($browser, $location, $rootElement) {
originalBrowser = $browser.url();
// we have to prevent the default operation, as we need to test absolute links (http://...)
// and navigating to these links would kill jstd
- $document.bind('click', function(e) {
+ $rootElement.bind('click', function(e) {
lastEventPreventDefault = e.isDefaultPrevented();
e.preventDefault();
});