From f8f58e1031b204d0a213b63027095f67e78d23eb Mon Sep 17 00:00:00 2001 From: John Messerly Date: Thu, 25 Jul 2013 11:31:36 -0700 Subject: [PATCH] Add support for empty if, similar to bind and repeat. --- src/template_element.js | 1 + tests/template_element.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/template_element.js b/src/template_element.js index 512bbe8..8a70629 100644 --- a/src/template_element.js +++ b/src/template_element.js @@ -991,6 +991,7 @@ if (isTemplateNode) { if (name === IF) { ifFound = true; + value = value || '{{}}'; // Accept 'naked' if. } else if (name === BIND || name === REPEAT) { bindFound = true; value = value || '{{}}'; // Accept 'naked' bind & repeat. diff --git a/tests/template_element.js b/tests/template_element.js index 7246acb..5bb6a23 100644 --- a/tests/template_element.js +++ b/tests/template_element.js @@ -162,6 +162,20 @@ suite('Template Element', function() { assert.strictEqual('foo', div.lastChild.textContent); }); + test('Template-Empty If', function() { + var div = createTestHtml( + ''); + var m = { value: 'foo' }; + recursivelySetTemplateModel(div, null); + Platform.performMicrotaskCheckpoint(); + assert.strictEqual(1, div.childNodes.length); + + recursivelySetTemplateModel(div, m); + Platform.performMicrotaskCheckpoint(); + assert.strictEqual(2, div.childNodes.length); + assert.strictEqual('foo', div.lastChild.textContent); + }); + test('Template Repeat If', function() { var div = createTestHtml( '');