Provides a convenient way for placing views into the correct containers of your app.
The sap.f
extension of Targets
also handles the triggering of page navigation when the target control is an sap.f.FlexibleColumnLayout
. Other controls are also allowed, but the extra parameters viewLevel
, transition
, and transitionParameters
are ignored and it behaves as sap.ui.core.routing.Targets
.
When a target is displayed, dialogs are being closed. To change this, use #getTargetHandler
and sap.f.routing.TargetHandler#setCloseDialogs.
Constructor for a new Targets
class.
new sap.f.routing.Targets(oOptions)
Param | Type | Default Value | Description |
---|---|---|---|
oOptions | object | ||
views | sap.ui.core.routing.Views | The views instance will create the views of all the targets defined, so if 2 targets have the same viewName, the same instance of the view will be displayed. |
|
config? | object | This config allows all the values oOptions.targets.anyName allows, these will be the default values for properties used in the target. For example, if you are only using xmlViews in your app you can specify viewType="XML" so you don't have to repeat this in every target. If a target specifies viewType="JS", the JS will be stronger than the XML here is an example.
Then the effective config that will be used looks like this:
|
|
rootView? | string | The ID of the This should be the ID of the view that contains the control with the If you are using a component and add the routing.targets, do not set this parameter, since the component will set the rootView to the view created by the sap.ui.core.UIComponent#createContent function. If you specify the "parent" property of a target, the control will not be searched in the root view but in the view created by the parent (see parent documentation). |
|
async? | boolean | false | Whether the views which are created through this |
targets | object | One or multiple targets in a map. |
|
anyName | object | A new target, the key severs as a name. Example:
This creates two targets named 'welcome' and 'goodbye'. You can display both of them or one of them using the |
|
viewName | string | The name of a view that will be created. To place the view into a Control use the
If you want to have a second instance of the welcome view you can use the following:
|
|
viewType? | string | oOptions.config.viewType | The type of the view that is going to be created. These are the supported types: sap.ui.core.mvc.ViewType. You always have to provide a viewType except if |
viewPath? | string | A prefix that is prepended in front of the Example: |
|
viewId? | string | The ID of the created view. This is is prefixed with the ID of the component set to the views instance provided in |
|
targetParent? | string | The ID of the parent of the This should be the ID of the view that contains your |
|
controlId? | string | The ID of the control where you want to place the view created by this target. The view of the target will be put into this container Control, using the controlAggregation property. You have to specify both properties or the target will not be able to place itself. An example for containers are sap.ui.ux3.Shell with the aggregation 'content' or a sap.m.NavContainer with the aggregation 'pages'. |
|
controlAggregation? | string | The name of an aggregation of the |
|
clearControlAggregation? | boolean | Defines a boolean that can be passed to specify if the aggregation should be cleared - all items will be removed - before adding the View to it. When using a sap.ui.ux3.Shell this should be true. For a sap.m.NavContainer it should be false. When you use the sap.f.routing.Router the default will be false. |
|
parent? | string | A reference to another target, using the name of the target. If you display a target that has a parent, the parent will also be displayed. Also the control you specify with the controlId parameter, will be searched inside of the view of the parent not in the rootView, provided in the config. The control will be searched using the byId function of a view. When it is not found, the global id is checked. The main usecase for the parent property is placing a view inside a smaller container of a view, which is also created by targets. This is useful for lazy loading views, only if the user really navigates to this part of your application. Example: Our aim is to lazy load a tab of an IconTabBar (a control that displays a view initially and when a user clicks on it the view changes). It's a perfect candidate to lazy load something inside of it. Example app structure: We have a
an xml view called 'Detail'
and a view called 'SecondTabContent', this one contains our content we want to have lazy loaded. Now we need to create our Targets instance with a config matching our app:
Now, if we call |
|
viewLevel? | int | If you are having an application that has a logical order of views (eg: a create account process, first provide user data, then review and confirm them). You always want to show a backwards transition if a navigation from the confirm to the userData page takes place. Therefore you may use the viewLevel. The viewLevel has to be an integer. The user data page should have a lower number than the confirm page. These levels should represent the user process of your application and they do not have to match the container structure of your Targets. If the user navigates between views with the same viewLevel, a forward transition is taken. If you pass a direction into the display function, the viewLevel will be ignored. Example:
Currently the 'userData' target is displayed.
|
|
transition? | string | Defines which transition of the sap.m.NavContainer is applied when navigating. If it is not defined, the |
|
transitionParameters? | string | Defines the |
Method | Description |
---|---|
sap.f.routing.Targets.extend |
Creates a new subclass of class sap.f.routing.Targets with name
|
sap.f.routing.Targets.getMetadata |
Returns a metadata object for class sap.f.routing.Targets. |
getTargetHandler |
Returns the |
Creates a new subclass of class sap.f.routing.Targets with name sClassName
and enriches it with the information contained in oClassInfo
.
oClassInfo
might contain the same kind of information as described in sap.ui.core.routing.Targets.extend.
Param | Type | DefaultValue | Description |
---|---|---|---|
sClassName | string |
Name of the class being created |
|
oClassInfo | object |
Object literal with information about the class |
|
FNMetaImpl | function |
Constructor function for the metadata object; if not given, it defaults to the metadata implementation used by this class |