code: function () {
                  // Ensure we've got a proper binding context to work with
                  var bindingContext = (dataOrBindingContext && (dataOrBindingContext instanceof bindingContextConstructor))
                      ? dataOrBindingContext
                      : new bindingContextConstructor(dataOrBindingContext, null, null, null, { "exportDependencies": true });
  
                  var templateName = resolveTemplateName(template, bindingContext['$data'], bindingContext),
                      renderedNodesArray = executeTemplate(targetNodeOrNodeArray, renderMode, templateName, bindingContext, options);
  
                  if (renderMode == "replaceNode") {
                      targetNodeOrNodeArray = renderedNodesArray;
                      firstTargetNode = getFirstNodeFromPossibleArray(targetNodeOrNodeArray);
                  }
              }
docs: So the DOM is automatically updated when any dependency changes