Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

feat($location): parse query parameters delimited by ; or & #6341

Closed
wants to merge 124 commits into from

Conversation

khepin
Copy link

@khepin khepin commented Feb 19, 2014

According to RFC (http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2)
location should match either ';' OR '&', but not both at the same time.

Closes #6140

caitp and others added 30 commits February 6, 2014 21:17
In accordance with recomendation in http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2, the
query parameters should support encoding and decoding using & or ; as a delimiter.

Angular will consistently encode search queries using either '&' or ';' as the delimiter, with '&' being the default.
This can be configured like so:

```js
$locationProvider.queryDelimiter(';'); // any other value will be treated as '&'
```

Closes angular#6140
Use git repo as source and use q-io instead of q-fs
This reverts commit 64d58a5.

For some weird reason this is causing regressions at Google.
I'm not sure why and I'm running out of time to investigate, so I'm taking
a safe route here and reverting the commit since it's just a refactoring.
End to end tests will continue to be run on Safari and Firefox on Travis.

Closes angular#6187
Signed-off-by: Caitlin Potter <[email protected]>

Closes angular#6202
… comment element

This corrects a complicated compiler issue, described in detail below:

Previously, if an element transclusion directive contained an asynchronous directive whose template
contained another element transclusion directive, the inner element transclusion directive would be
linked with the element, rather than the expected comment node.

An example manifestation of this bug would look like so:

```html
<div ng-repeat="i in [1,2,3,4,5]">
  <div my-directive>
  </div>
</div>
```

`my-directive` would be a replace directive, and its template would contain another element
transclusion directive, like so:

```html
<div ng-if="true">{{i}}</div>
```

ngIf would be linked with this template content, rather than the comment node, and the template element
would be attached to the DOM, rather than the comment. As a result, this caused ng-if to duplicate the
template when its expression evaluated to true.

Closes angular#6006
Closes angular#6101
… attributes

The documentation states only the "action" attribute triggers this, which is incorrect. When using
the attribute "data-action" (as for AJAX control, attempting to bypass the "action" attribute but
still make it obvious what its for), Angular thinks this is also classified as "action" and
continues with the page submission.

Closes angular#6196
Added a link to 10 reasons to use and online courses for Angular

Closes angular#6194
Since we now pass in the transclusion function directly to the link function, we no longer need
the old scheme whereby we saved the transclude function injected into the controller for later
use in during linking.

Additionally, this change may aid in correcting a memory leak of detached DOM nodes (see angular#6181
for details).

This commit removes the controller and simplifies ngTransclude.

Closes angular#5375
Closes angular#6181
Due to 339a165, it became impossible to filter nested properties of an object using the filterFilter.
A proposed solution to this was to enable the use of nested predicate objects. This change enables the
use of these nested predicate objects.

Example:

```html
<div ng-repeat="it in items | filter:{ address: { country: 'Canuckistan'}}"></div>
```

Or

```js
$filter('filter')(items, { address: { country: 'Canuckistan' } });
```

Closes angular#6215
Related to angular#6009
added missing closing tag to ngApp example.

Closes angular#6066
CI builds on travis occasionally freak out because of the recursive use of process.nextTick, which
has been deprecated in Node relatively recently, to be replaced with setImmediate. Unfortunately,
this change does not resolve the issue. However, it does not hurt, either.

Closes angular#6161
When I was reading this doc I was thinking "but what about phonecatApp?" and when I looked in the
file from the step-11 branch there it is. Should be reflected in the docs as well

Closes angular#6209
…ry api)

Previous link url is no longer served, responds with bad link (error 404). This change corrects the
URL to point to section 5.5 of the draft. The old URL appears to have been removed from service in
2012.

Corrects the link to "History API"

Closes angular#6225
Previously missing the methods_ prefix.

Closes angular#5798
Stéphane Reynaud and others added 19 commits February 19, 2014 17:46
The $compile service accepts string as a value and wraps it if
needed, so this statement isn't correct, at least by the source
code.

Closes angular#6301
…iframe document, as in jQuery

This is a very tiny change to make behaviour consistent with jQuery.

Closes angular#6320
Closes angular#6323
Building the G3 commits occupies a lot of time, and these branches have
already been tested.

Closes angular#6328
According to RFC (http://www.w3.org/TR/1999/REC-html401-19991224/appendix/notes.html#h-B.2.2)
location should match either ';' OR '&', but not both at the same time.

Closes angular#6140
@mary-poppins
Copy link

Thanks for the PR! Please check the items below to help us merge this faster. See the contributing docs for more information.

  • Uses the issue template (#6341)

If you need to make changes to your pull request, you can update the commit with git commit --amend.
Then, update the pull request with git push -f.

Thanks again for your help!

@khepin
Copy link
Author

khepin commented Feb 19, 2014

@caitp Don't know why I couldn't send that to your fork... This is the same as your PR, except it won't parse both & and ; at the same time as the specification in the RFC is to use ; in place of & to avoid escaping & when & is used inside a parameter name.

@caitp
Copy link
Contributor

caitp commented Feb 20, 2014

I will update my patch to address this, but this CL has gotten a bit crazy (look at those commits!), so I think this needs to be cleaned up a bit in order to be merged in

@khepin
Copy link
Author

khepin commented Feb 20, 2014

Yeah, I need to practice my git-fu a little bit for next time, not sure how that happened...

@linclark
Copy link
Contributor

It seems that the discussion has continued in #6167, so I believe this can be closed as a duplicate. Feel free to @ mention me to reopen if this is not the case.

@linclark linclark closed this Feb 25, 2014
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: $location.seach() should support semicolon (;) as an alternative delimiter to (ampersand) &