2013-10-04 3 views
1

나는 정말 각도로 템플리트를 만드는 방법에 대해 고심합니다. 그래서,이처럼 테이블 채우기있어 한 :핸들 막대 모양의 템플리트 각도로

<tr ng-repeat="store in stores"> 
    <td> 
     <p>{{store.day_one.visitor_count}}</p> 
     <span>ng-class="{green: ... >= 0, red: ... < 0}"</span> 
     <small>store.difference.visitor_count</small> 
    </td> 
    <td> 
     <p>{{store.day_one.conversion_rate}}</p> 
     ... 
    </td> 
    <td> 
     ... 
     <p>{{store.day_one.dwell_time}}</p> 
     ... 
    </td> 
</tr> 

하지만 난 정말하고 싶은 무언가를 더 좋아 :

<td reportNumber="{numberOne: store.day_one.visitor_count, 
        numberTwo: store.difference.visitor_count}> 
</td> 

옵션 1 :

쓰기 appriopriate html을 만들고 td에 추가하는 지시어 ... 그러나 지시문에 html 문자열을 쓰는 방법은 무엇입니까? 각도에서 util 메소드를 찾을 수 없기 때문에 좋은 방법으로 html 문자열을 쓰고 쓸 수 있습니다. '<p>' + 'numberOne' + </p>...은 고통 스럽습니다.

그러나 partials도 있습니다. 부분적으로 사용하고 지시문에 채울 수 없었습니까? 나는 그들을로드하고 $ http를 통해 그들을 가져 오는 적절한 방법을 찾을 수 없습니다 이상한 것 같습니다.

옵션 2 :

사용 ng-include 직접하지만 적절한 방법으로보기에서 범위 변수를 만드는 방법? 내가 좋아하는 뭔가를 위해 할 수있는 :

<td dummyVar="{{ numberOne = store.day_one.visitor_count; 
       numberTwo = store.difference.visitor_count}}" 
    ng-include="'/static/angular/views/partials/reportNumber.html'"> 
</td> 

하지만이 깨끗한보다는 해키 보인다 이러한 변수를 항상 재정 문제가있을 수 있는지 모르겠어요.

내 질문 :템플릿을 사용하여 좋은 방법으로 테이블을 만드는 방법? {{`http://jsfiddle.net/ztxTe/

답변

2

은 간단 지시문을 사용합니다. ..}}`지시어 안에, 고마워. 하지만 여전히 문자열을 concenate하기 위해`+`를 사용하고 있다면, 나는 더 깨끗한 방법이 있다고 생각했을 것입니다.
+0

난 당신이 사용할 수 있다는 것을 알고하지 않았다 : 좋아

app.directive("mytd", function() { return { template: "<div>" + "<p>{{num}}</p>" + "<span ng-class='{green: diff >= 0, red: diff < 0}'></span>" + "<small>{{diff}}</small>" + "</div>", scope: { num: "=", diff: "=" } }; }); 

그리고 그것을 사용 :

<td mytd="" num="store.day_one.visitor_count" diff="store.difference.visitor_count"></td> 

이 바이올린을 참조 – TN1ck

+0

@ TN1ck 합리적 이죠. 이런 종류의 문자열 연결은 한 번만 수행되며 주로 코드를 예쁜 형식으로 만드는 데 사용됩니다. 템플리트 대신에'templateUrl'을 사용하여 외부 파일에서 HTML을로드 할 수도 있습니다. 그러나이 모든 것은 구현 세부 사항입니다. –

+0

맞습니다. 너무 늦기 전에 제 의견을 편집하고 싶었습니다. 내가 원했던 것을 정확히 제공 했으므로 지시어를 읽을 때 템플릿/templateUrl을 놓쳤습니다. 이것에 다시 한번 감사드립니다. – TN1ck

관련 문제