Advertisement
Guest User

Untitled

a guest
Nov 26th, 2015
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. import React from 'react';
  2. import ReactDOM from 'react-dom';
  3.  
  4. module.exports = 'component-wrapper';
  5.  
  6. angular
  7. .module('component-wrapper', [])
  8. .directive('componentWrapper', directive);
  9.  
  10. function directive() {
  11.  
  12. return {
  13. restrict: 'E',
  14. scope: {
  15. component: '&',
  16. props: '='
  17. },
  18. link: link
  19. }
  20.  
  21. function link(scope, element, attr) {
  22.  
  23. var TargetComponent = scope.component();
  24.  
  25. scope.$watch('props', (newProps, oldProps) => {
  26.  
  27. if (newProps === oldProps) return;
  28.  
  29. ReactDOM.render(
  30. <TargetComponent { ...newProps }/>,
  31. element[0]
  32. );
  33. });
  34.  
  35. scope.$on('$destroy', () => {
  36. ReactDOM.unmountComponentAtNode(element[0])
  37. });
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement