The URL malformation was caused by the same
function returning the view and index path for
both the newtab window and the browse controller
window. As a result, the BrowseController now only
uses a path that excludes the view and index paths,
like before the UrlService was added. Another,
separate function uses this url for the location
and includes the view and index paths for new
tabs, in order to maintain the current view. WTD 23.
Adjusted BrowseController's useRoute
to use the urlService instead. Also
adds urlService as a depency through
bundle. Unit test also adjusted to
account for a mockUrlService and
a different value being passed into
mockLocation.path(). WTD 16.
Work around normal behavior of Angular when path changes;
instead of reinstantiating controller for Browse mode
when Browse-initiated path changes occur, act as if the
route hadn't changed (so that the URL updates but the
currently-displayed state, e.g. tree expansion, is
preserved.) WTD-1149.
Use ng-model when communicating state to/from the
tree in browse mode. This will simplify implementation
of the Locator control, which also uses a tree, but
which should not set navigation state. WTD-593.