diff --git a/docs/client/api.html b/docs/client/api.html
index 5e8a7b30f6..876e0b877f 100644
--- a/docs/client/api.html
+++ b/docs/client/api.html
@@ -2189,6 +2189,12 @@ This property provides access to the data context at the top level of
the template. It is updated each time the template is re-rendered.
Access is read-only and non-reactive.
+{{> api_box template_autorun}}
+
+You can use `this.autorun` from a [`created`](#template_created) or
+[`rendered`](#template_rendered) callback to reactively update the DOM
+or the template instance. The Computation is automatically stopped
+when the template is destroyed.
Template utilities
@@ -2205,6 +2211,15 @@ any part of the DOM for finer control than just using template inclusions.
You can define helpers and event maps on `UI.body` just like on any
`Template.myTemplate` object.
+Helpers on `UI.body` are only available in the `` tags of your
+app. To register a global helper, use
+[UI.registerHelper](#ui_registerhelper).
+
+Event maps on `UI.body` don't apply to elements added to the body via
+`UI.insert`, jQuery, or the DOM API, or to the body element itself.
+To handle events on the body, window, or document, use jQuery or the
+DOM API.
+
{{> api_box ui_render}}
This returns an "rendered template" object, which can be passed to
@@ -2238,7 +2253,15 @@ changes.
{{> api_box ui_getelementdata}}
+{{> api_box ui_dynamic}}
+`UI.dynamic` allows you to include a template by name, where the name
+may be calculated by a helper and may change reactively. The `data`
+argument is optional, and if it is omitted, the current data context
+is used.
+
+For example, if there is a template named "foo", `{{dstache}}> UI.dynamic
+template="foo"}}` is equivalent to `{{dstache}}> foo}}`.
{{#api_box eventmaps}}
diff --git a/docs/client/api.js b/docs/client/api.js
index a4c9a3a828..3d469a7c88 100644
--- a/docs/client/api.js
+++ b/docs/client/api.js
@@ -1845,6 +1845,17 @@ Template.api.template_data = {
descr: ["The data context of this instance's latest invocation."]
};
+Template.api.template_autorun = {
+ id: "template_autorun",
+ name: "this.autorun(runFunc)",
+ locus: "Client",
+ descr: ["A version of [Deps.autorun](#deps_autorun) that is stopped when the template is destroyed."],
+ args: [
+ {name: "runFunc",
+ type: "Function",
+ descr: "The function to run. It receives one argument: a Deps.Computation object."}
+ ]
+};
Template.api.ui_registerhelper = {
id: "ui_registerhelper",
@@ -1862,6 +1873,22 @@ Template.api.ui_registerhelper = {
}]
};
+Template.api.ui_dynamic = {
+ id: "ui_dynamic",
+ name: "{{> UI.dynamic template=templateName [data=dataContext]}}",
+ locus: "Client",
+ descr: ["Choose a template to include dynamically, by name."],
+ args: [
+ {name: "templateName",
+ type: "String",
+ descr: "The name of the template to include."
+ },
+ {name: "dataContext",
+ type: "Object",
+ descr: "Optional. The data context in which to include the template."
+ }]
+};
+
Template.api.ui_body = {
id: "ui_body",
name: "UI.body",
diff --git a/docs/client/docs.js b/docs/client/docs.js
index bb3fc8eec8..f76df144bf 100644
--- a/docs/client/docs.js
+++ b/docs/client/docs.js
@@ -253,7 +253,8 @@ var toc = [
{instance: "this", name: "find", id: "template_find"},
{instance: "this", name: "firstNode", id: "template_firstNode"},
{instance: "this", name: "lastNode", id: "template_lastNode"},
- {instance: "this", name: "data", id: "template_data"}
+ {instance: "this", name: "data", id: "template_data"},
+ {instance: "this", name: "autorun", id: "template_autorun"}
],
"UI", [
"UI.registerHelper",
@@ -262,7 +263,8 @@ var toc = [
"UI.renderWithData",
"UI.insert",
"UI.remove",
- "UI.getElementData"
+ "UI.getElementData",
+ {name: "{{> UI.dynamic}}", id: "ui_dynamic"}
],
{type: "spacer"},
{name: "Event maps", style: "noncode"}