Issue 1:
[x] bug report
[ ] feature request
[ ] support request

Current behavior

A change of value of a date input control (that is created using ngFor and that is bound to an item in an array) modifies the value of the succeeding control.

Expected behavior

A modification of date input control value should only be applied to the selected date input control.

Minimal reproduction of the problem with instructions

http://plnkr.co/edit/5ZdUsGolUk5AAYgJ9qgP?p=preview

Steps to reproduce -

(Chrome)

Use plnkr link, and wait for the app to load.

Click on the up button next to the first date input control to modify it.

Notice that both first and second date input control values have changed. Also notice that the focus has changed to the second date input control.

Click once again on the up button next to the first date input control.

Notice that this time only first date input control value has changed.

(Firefox)

Use plnkr link, and wait for the app to load.

Click the first date input control to set focus, and press Backspace key.

Notice that both first and second date input control value have changed. Also notice that the focus has changed to the second date input control.

Click once again on the first date input control to set focus, and press Backspace key.

Notice that this time only first date input control value has changed.

(Edge)

Use plnkr link, and wait for the app to load.

Click the first date input control to select new date value, and press check-mark button to apply.

Notice that both first and second date input control value have changed.

Click once again on the first date input control to select new date value, and press check-mark button to apply.

Notice that this time only first date input control value has changed.

Please tell us about your environment:

Windows 10

Angular version: 2.2.3

Browser: Chrome 54, Edge 38/14, Edge 39/15, Firefox 50

Language: TypeScript 2.0.3

Node (for AoT issues): 6.6.0

Issue 2:
I'm submitting a ... (check one with "x")

[ ] bug report => search github for a similar issue or PR before submitting
[ x ] feature request
[ x ] support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question

Current behavior

I'm using Router.navigate([], {queryParams:{foo:'bar'}}) for updating Query Params for the current Route (couldn't find any other way to do this).

When I call navigate twice with the same queryParams the returned Promise resolves to null. Documentation only tell's about true and false.

Expected behavior

This should be part of the official docs, because this seems to be the only way to see if the queryParams have changed. ActivatedRoute.queryParams will not get triggered on Router.navigate if the queryParams don't change. Or is there any other way?

Minimal reproduction of the problem with instructions

constructor(route: ActivatedRoute, router: Router) {
route.queryParams.subscribe(val => console.log("Query Params: ", val));
router.navigate([], {queryParams:{foo:'bar'}}).then(val => console.log("Navigate: " + val));
router.navigate([], {queryParams:{foo:'bar'}}).then(val => console.log("Navigate: " + val));
}

What is the motivation / use case for changing the behavior?

I want to call a method each time the queryParams change (either because of Router.navigate or because the user edited the URL manually). And each queryParams change will update a form. And each form update will set the new queryParams and trigger the method call. And there's also a button inside the form that will re-execute the method.

Though I need a reliable way to find out if queryParams changed.

Please tell us about your environment:

macOS Sierra, VS Code, npm, webpack, webpack-dev-server

Angular version: 2.4.1 and 4.0.0-beta.1

Tested with 2.4.1 and 4.0.0-beta.1

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Chrome 55

Language: [all | TypeScript X.X | ES6/7 | ES5]

Typescript 2.0.10

Node (for AoT issues): node --version =

7.3.0