2016-03-27 11 views
5

Poszukuję najlepszych rozwiązań dla podejścia 1 kątowego i podejścia opartego na CMS.Najlepsza praktyka AngularJS dla aplikacji opartych na komponentach i cms

Mam zamiar zbudować wiele szablonów etykiet i chcę, aby ten projekt był oparty na komponentach, wysoce przydatny do wielokrotnego użytku i napędzany przez treść CMS.

Mam zamiar używać JSON jako drzewo komponentów i tylko skompilować krok drzewo po kroku za pomocą $ skompilować usługę tak:

angular.module('app.compile', [], function($compileProvider) { 
$compileProvider.directive('compile', function($compile) { 
    return function(scope, element, attrs) { 
     scope.$watch(
      function(scope) { 
       // watch the 'compile' expression for changes 
       return scope.$eval(attrs.compile); 
      }, 
      function(value) { 
       // when the 'compile' expression changes 
       // assign it into the current DOM 
       element.html(value); 

       // compile the new DOM and link it to the current 
       // scope. 
       // NOTE: we only compile .childNodes so that 
       // we don't get into infinite loop compiling ourselves 
       $compile(element.contents())(scope); 
      } 
     ); 
    }; 
    }); 
}); 

http://plnkr.co/edit/MwUjE9l6U5wMkE89kwqY?p=preview

  1. Chciałbym wiedzieć, czy ktoś już próbował tego wcześniej i może podzielić się swoją opinią?
  2. Czy to brzmi jak dobre rozwiązanie? Czy jest to najlepsza dostępna praktyka?
  3. Czy ta metoda korzystania z usługi $compile może być szkodliwa dla wydajności?

Odpowiedz

0

Preferuję użycie elementów kątowych. Używam $ compile tylko do dynamicznego wykorzystania moich komponentów. Używaj dyrektyw tylko po to, aby zmienić DOM. Jeśli twoja kontrola ma zamiast niej komponent użycia szablonu.

Sprawdź, czy próbka angular components with typescript

TKS!