Until I removed .show() from the end of the line: element.html(getTemplate(scope.content.content_type)).show(); the template content was showing: {{content.title}} instead of title value. Are you 100% sure this needs to be here?