{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/12934","labels_url":"https://api.github.com/repos/angular/angular.js/issues/12934/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/12934/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/12934/events","html_url":"https://github.com/angular/angular.js/pull/12934","id":108089729,"number":12934,"title":"feat($compile): multiple transclusion via named slots","user":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/component:%20$compile","name":"component: $compile","color":"e102d8"},{"url":"https://api.github.com/repos/angular/angular.js/labels/type:%20feature","name":"type: feature","color":"00a606"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/90","html_url":"https://github.com/angular/angular.js/milestones/1.5.x%20-%20migration-facilitation","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/90/labels","id":1025270,"number":90,"title":"1.5.x - migration-facilitation","description":"","creator":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"open_issues":74,"closed_issues":28,"state":"open","created_at":"2015-03-17T12:15:49Z","updated_at":"2015-09-24T14:00:55Z","due_on":null,"closed_at":null},"comments":9,"created_at":"2015-09-24T09:12:58Z","updated_at":"2015-09-24T21:52:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/angular/angular.js/pulls/12934","html_url":"https://github.com/angular/angular.js/pull/12934","diff_url":"https://github.com/angular/angular.js/pull/12934.diff","patch_url":"https://github.com/angular/angular.js/pull/12934.patch"},"body":"In this version of multiple transclusion you specify the transclusion slots in the `transclude` property of the DDO, where the keys are the node names of transclusion zones and the values are the names of the slots in the template:\r\n\r\n```js\r\ndirective('minionComponent', function() {\r\n  return {\r\n    restrict: 'E',\r\n    scope: {},\r\n    transclude: {\r\n      minion: 'minionSlot',\r\n      boss: 'bossSlot'\r\n    },\r\n    template:\r\n      '<div class=\"boss\" ng-transclude=\"bossSlot\"></div>' +\r\n      '<div class=\"minion\" ng-transclude=\"minionSlot\"></div>' +\r\n      '<div class=\"other\" ng-transclude></div>'\r\n  };\r\n});\r\n```\r\n\r\nSo the following HTML\r\n\r\n```html\r\n<minion-component>\r\n  <minion>stuart</minion>\r\n  <minion>bob</minion>\r\n  <span>dorothy</span>\r\n  <boss>gru</boss>\r\n</minion-component>\r\n```\r\n\r\nwill be compiled and rendered to \r\n\r\n```html\r\n<minion-component>\r\n  <div class=\"boss\" ng-transclude=\"bossSlot\">\r\n    <boss>gru</boss>\r\n  </div>\r\n  <div class=\"minion\" ng-transclude=\"minionSlot\">\r\n    <minion>stuart</minion>\r\n    <minion>bob</minion>\r\n  </div>\r\n  <div class=\"other\" ng-transclude>\r\n    <span>dorothy</span>\r\n  </div>\r\n</minion-component>\r\n```\r\n\r\nReplaces #12742 and #11736"},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/143060273","html_url":"https://github.com/angular/angular.js/pull/12934#issuecomment-143060273","issue_url":"https://api.github.com/repos/angular/angular.js/issues/12934","id":143060273,"user":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"created_at":"2015-09-24T21:52:58Z","updated_at":"2015-09-24T21:52:58Z","body":"> Should the key in DDO's transclude object use element-name or the normalized elementName for consistency?\r\n\r\nWe could normalise the element name, and store match against the normalized form stored as the key in the `transclude` object. I will implement that."}}