2016-09-06 2 views
-1

저는 각도 표현 {{ userInfo.activities.ids }}을 가지고 있습니다. 이것은 PHP를 통해 각도로 보내는 배열입니다.
지금 나는이 사용하고
,이 배열의 값을 확인해야합니다 : -ng-if가 예상대로 동작하지 않는 경우

[[userInfo.activities.ids.indexOf(1) != -1]]을하고는 true 또는 false를 반환합니다.
나는 그 가치에 기초하여 ng-if을 적용하고 싶었습니다. 그러므로 내가 쓴 :

<input ng-if="{{userInfo.activities.ids.indexOf(1) != -1}} == true" checked type="checkbox"> 
<input ng-if="{{userInfo.activities.ids.indexOf(1) == -1}} == true" type="checkbox"> 

그러나 ng-if는 조건을 확인하지 않고, 따라서 입력 중 어느 것도 표시되지됩니다.

대신이 중 어떤 방법을 사용할 수 있는지 제안 해주십시오.
내 템플릿을 각도 표현에서 분리하기 위해 [[]]을 (를) 사용했습니다.
나는 laravel 5.2 php와 함께 각도를 사용하고있다.

답변

1

ng-if 조건에 괄호를 제거를 사용 (보간을 사용할 필요가 없습니다 중괄호). 표현식이 참 또는 거짓 평가로

또한, 필요 다시 내가 그렇게 내 배열과 1,2,3의 인덱스를 확인해야하고 == true 조건

<input ng-if="((userInfo.activities.ids.indexOf(1)) != -1)" checked type="checkbox"> 
<input ng-if="((userInfo.activities.ids.indexOf(1)) == -1)" type="checkbox"> 

Here is a reference

+0

해결책을 구현하고 점검하도록하겠습니다. @Sravan에게 감사합니다. – Simer

+0

그것의 작동. 감사!! 그것은 ng-if = "{{userInfo.activities.ids.indexOf (1)! = -1}} == 'true'"를 적용했을 때도 효과가있었습니다. 즉 내가 참/거짓을 따옴표로 넣을 때. 감사합니다. – Simer

+0

이것은 프론트 엔드 개발자로서 2 년 경력에서 본 최악의 조건입니다. 내 대답의 수표를 사용하십시오. – CodeNashor

3

같은 배열을 확인하시기 바랍니다 :

<input ng-if="userInfo.activities.ids[0] === -1" type="checkbox"> // if the value is a number 
<input ng-if="userInfo.activities.ids[0] === '-1'" type="checkbox"> // it its a string 
<input ng-if="userInfo.activities.ids.length === 0'" type="checkbox"> // if its empty 

은 신원이 (===) 연산자가없는 타입 변환을 제외하고 항등 (==) 연산자와 같은 동작을 수행하고 유형이 동일해야합니다 동등한 것으로 간주된다. 당신이 등등 ng-if, ng-model, ng-class 등 각 모델의 범위 변수를 사용하는 경우 항상 === 나!의 ==

+0

을 확인 없습니다 그걸 근거로 체크를해야합니다. 질문에서 설명한대로. 도움을 주셔서 감사합니다 @codeNashor. – Simer

관련 문제