2012-09-12 1 views
1

배열 객체에서 목록을 인쇄하고 배열의 모든 항목을 완료하면 HTML에 "true"라는 단어를 인쇄합니다.HAML for 루프는 HTML 렌더링에서 "true"라는 단어를 인쇄합니다.

코드는 다음과 같습니다

%ul 
    = for i in users 
    %li 
     = i.username 

이 인쇄 :

HTML 출력에 다음과 같습니다
username1 
username2 
username3 
true 

:

<ul> 
    <li>username1</li> 
    <li>username2</li> 
    <li>username3</li> 
    true 
</ul> 

true 인쇄지고 있고 나는 그것을 어떻게 제거합니까?

답변

3

루프에 =을 사용하면 표현식의 결과가 출력됩니다.

%ul 
    - for i in users 
    %li= i.username 

증명 :

C:\>haml 
- users = %w[user1 user2 user3] 
%ul 
    - for name in users 
    %li= name 
^Z 
<ul> 
    <li>user1</li> 
    <li>user2</li> 
    <li>user3</li> 
</ul> 
이 같이 더 간단하게 쓸 수

%ul 
    - for i in users 
    %li 
     = i.username 

: 대신 -를 루비 코드를 실행하지만 출력으로 방출되는 값을 사용하고자 할 경우


제쳐두고, 저는 개인적으로 Ruby에이 for의 사용법을 보았습니다. 대신 개인적으로 다음을 권합니다.

%ul 
    - users.each do |user| 
    %li= user.username 
+1

"우선, 2 위 ** 및 ** 마지막으로 ..."이어야합니다. 어쨌든 내부적으로'each '를 사용하기 때문에 실제로'for'를 사용하지 마십시오. – Gareth

+0

당신은 대단합니다. 너무 빨리 내 문제를 해결해 주셔서 감사합니다 :-) – Lorenz

+0

@Gareth 영어 비평 주셔서 감사합니다. 편집 됨. :) – Phrogz

관련 문제