2014-11-12 3 views
0

를 작성 도움이 필요하십니까 나는이 내 HTML에서 여러 번 반복이 코드 :는 AngularJS와 지시어

<div multi-select 
    input-model="filters.REPLACEMENT_A" 
    button-label="name" 
    item-label="name" 
    tick-property="selected" 
    default-label="REPLACEMENT_B" 
></div> 

두 REPLACEMENT_의 문자열 변화하는 유일한 부분. 내가 이렇게 내가 지금처럼 부를 것이다 지시문하고 싶습니다 :

<myDirective model="regions" label="The label here"></myDirective> 

내가 어떻게 든 컴파일해야이 지시어는 기본적으로 또 다른 지침 (다중 선택 지시자)를 반환하기 때문에 생각 해요을/공정 그것은 단순한 문자열을 반환하는 것과는 반대되는 것입니까?

답변

0

이것은 작동하는 것 같습니다. 그것이 "올바른"길이라면 단서 없음.

var filterDefinition = function ($compile) { 
    return { 
     restrict: 'E', 
     link: function (scope, element, attrs) { 
      var content = '<div multi-select button-label="name" item-label="name" tick-property="selected" group-property="group"'; 
      content += ' input-model="filters.' + attrs.filter + '"'; 
      content += ' default-label="' + attrs.label + '"></div>'; 

      var jqLiteElem = angular.element(content); 
      $compile(jqLiteElem)(scope); 

      element.replaceWith(jqLiteElem); 
     } 
    }; 
};