#

API Docs for: v2.11.1
Show: Inherited Protected Private Deprecated

# Ember.ApplicationInstance.BootOptions Class

Defined in: `packages/ember-application/lib/system/application-instance.js:303`
Module: ember-application
Parent Module: ember

A list of boot-time configuration options for customizing the behavior of an `Ember.ApplicationInstance`.

This is an interface class that exists purely to document the available options; you do not need to construct it manually. Simply pass a regular JavaScript object containing the desired options into methods that require one of these options object:

    MyApp.visit("/", { location: "none", rootElement: "#container" });

Not all combinations of the supported options are valid. See the documentation on `Ember.Application#visit` for the supported configurations.

Internal, experimental or otherwise unstable flags are marked as private.

- Index
- Properties

## Item Index

### Properties

- document
- isBrowser
- isInteractive
- jQuery
- location
- rootElement
- shouldRender

## Properties

### `document`

Document public

Defined in `packages/ember-application/lib/system/application-instance.js:410`

If present, render into the given `Document` object instead of the global `window.document` object.

In practice, this is only useful in non-browser environment or in non-interactive mode, because Ember's `jQuery` dependency is implicitly bound to the current document, causing event delegation to not work properly when the app is rendered into a foreign document object (such as an iframe's `contentDocument`).

In non-browser mode, this could be a "`Document`-like" object as Ember only interact with a small subset of the DOM API in non- interactive mode. While the exact requirements have not yet been formalized, the `SimpleDOM` library's implementation is known to work.

Default: the global `document` object

### `isBrowser`

Boolean public

Defined in `packages/ember-application/lib/system/application-instance.js:351`

Run in a full browser environment.

When this flag is set to `false`, it will disable most browser-specific and interactive features. Specifically:

- It does not use `jQuery` to append the root view; the `rootElement` (either specified as a subsequent option or on the application itself) must already be an `Element` in the given `document` (as opposed to a string selector).

- It does not set up an `EventDispatcher`.

- It does not run any `Component` lifecycle hooks (such as `didInsertElement`).

- It sets the `location` option to `"none"`. (If you would like to use the location adapter specified in the app's router instead, you can also specify `{ location: null }` to specifically opt-out.)

Default: auto-detected

### `isInteractive`

Boolean private

Defined in `packages/ember-application/lib/system/application-instance.js:340`

Interactive mode: whether we need to set up event delegation and invoke lifecycle callbacks on Components.

Default: auto-detected

### `jQuery`

Object private

Defined in `packages/ember-application/lib/system/application-instance.js:326`

Provide a specific instance of jQuery. This is useful in conjunction with the `document` option, as it allows you to use a copy of `jQuery` that is appropriately bound to the foreign `document` (e.g. a jsdom).

This is highly experimental and support very incomplete at the moment.

Default: auto-detected

### `location`

String public

Defined in `packages/ember-application/lib/system/application-instance.js:462`

If present, overrides the router's `location` property with this value. This is useful for environments where trying to modify the URL would be inappropriate.

Default: null

### `rootElement`

String | Element public

Defined in `packages/ember-application/lib/system/application-instance.js:437`

If present, overrides the application's `rootElement` property on the instance. This is useful for testing environment, where you might want to append the root view to a fixture area.

In non-browser mode, because Ember does not have access to jQuery, this options must be specified as a DOM `Element` object instead of a selector string.

See the documentation on `Ember.Applications`'s `rootElement` for details.

Default: null

### `shouldRender`

Boolean public

Defined in `packages/ember-application/lib/system/application-instance.js:387`

Disable rendering completely.

When this flag is set to `true`, it will disable the entire rendering pipeline. Essentially, this puts the app into "routing-only" mode. No templates will be rendered, and no Components will be created.

Default: true