From daecafedbe621099516880e0783f65157034df2b Mon Sep 17 00:00:00 2001 From: Kenny Sabir Date: Fri, 2 Dec 2016 13:45:33 +1100 Subject: [PATCH 1/2] adding raw template to decorator --- .../schema-form-decorators.provider.spec.js | 26 +++++++++++++++++++ src/services/sf-builder.provider.js | 4 +-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/services/schema-form-decorators.provider.spec.js b/src/services/schema-form-decorators.provider.spec.js index 90ee964df..4892c6876 100644 --- a/src/services/schema-form-decorators.provider.spec.js +++ b/src/services/schema-form-decorators.provider.spec.js @@ -50,4 +50,30 @@ describe('schemaFormDecorators', function() { }); }); }); + + describe('#legacy #defineDecoratorWithRawTemplate', function() { + it('should enable you to create new decorator directives',function(){ + module(function(schemaFormDecoratorsProvider){ + schemaFormDecoratorsProvider.defineDecorator('foobar',{ + 'foo': {template: '
YES
', replace: true, type: 'template'} + },[angular.noop]); + }); + + inject(function($rootScope,$compile){ + + //Since our directive does a replace we need a wrapper to actually check the content. + var templateWithWrap = angular.element('
'); + var template = templateWithWrap.children().eq(0); + + $compile(template)($rootScope); + $rootScope.$apply(); + templateWithWrap.children().length.should.equal(1); + templateWithWrap.children().is('foobar').should.be.true; + templateWithWrap.children().eq(0).children().length.should.equal(1); + templateWithWrap.children().eq(0).children().is('div').should.be.true; + templateWithWrap.children().eq(0).children().hasClass('yes').should.be.true; + }); + }); + }); + }); diff --git a/src/services/sf-builder.provider.js b/src/services/sf-builder.provider.js index e864863be..011c70b88 100644 --- a/src/services/sf-builder.provider.js +++ b/src/services/sf-builder.provider.js @@ -326,8 +326,8 @@ export default function(sfPathProvider) { */ build: function(form, decorator, slots, lookup) { return build(form, decorator, function(form, field) { - if (form.type === 'template') { - return form.template; + if (field.type === 'template') { + return field.template; } return $templateCache.get(field.template); }, slots, undefined, undefined, lookup); From 7a02f557967bf9df857a1721246e2b75c798cf13 Mon Sep 17 00:00:00 2001 From: Marcel J Bennett Date: Tue, 24 Jan 2017 22:58:04 +1100 Subject: [PATCH 2/2] Update sf-builder.provider.js --- src/services/sf-builder.provider.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/services/sf-builder.provider.js b/src/services/sf-builder.provider.js index 011c70b88..44ef76eda 100644 --- a/src/services/sf-builder.provider.js +++ b/src/services/sf-builder.provider.js @@ -326,6 +326,9 @@ export default function(sfPathProvider) { */ build: function(form, decorator, slots, lookup) { return build(form, decorator, function(form, field) { + if (form.type === 'template') { + return form.template; + } if (field.type === 'template') { return field.template; }