2016-09-10 2 views
2

저는 Angular (1.3.10)을 사용하는 법을 배우고 있습니다. 저는 카드를 연주 할 때 필요한 양복과 값을 지정하는 두 개의 입력란을 가지고 있습니다. 아래 이미지에서 알 수 있듯이 양복과 값을 하드 코드하려고하면 카드가 잘 보입니다 (오른쪽에 하나). 그러나 ng-model을 사용하여 바인드 할 때 브라우저에서 카드를 가져 왔지만 card_value가 올바르게 표시되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? I가 표시되는 것을 볼 무엇ng-binding이 작동하지 않지만 ng-model이 작동합니다.

<div ng-app = "cards"> 
    <form> 
     <div> 
      <input ng-model = "card_value"> 
      <span>of</span> 
      <input ng-model = "card_suit"> 
     </div> 
    </form> 

    <div> 
     <p>Entered: {{card_value}} of {{card_suit}}</p> 

     <!-- card.value is not binding up perfectly fine --> 
     <card value = "{{card_value}}" suit = "{{card_suit}}"></card> 
     <!-- --> 

     <!-- this shows up perfectly fine --> 
     <card value = "5" suit = "Clubs" ></card> 
     <!-- --> 
    </div> 
</div> 

: 이 enter image description here

크롬 관리자 : NG 결합이 실패 할 경우 강조하는 부분이며,해야 5 enter image description here

+0

을 사용해야 폼 요소의 내부에 넣어 의도와 바인딩 양방향 데이터를 가지고있다'this.pips'는 지시 초기화 결코 한 번 할당 나중에 수정할 수 있습니다. 바인딩 작업을하기 위해서는'this.getPip = getPip'이 될 수 있고, template의'card.pip'는'card.getPip()'으로 대체 될 수 있습니다 (this.display에도 동일하게 적용됩니다). 좋은 점은 바인딩이 작동한다는 것입니다. 나쁜 점은 바인딩을 효율적으로 계산할 수 없기 때문에 무한한 다이제스트가 발생할 수 있다는 것입니다. 여하튼, 각 pip에 대해 ng-repeat를 사용하면 곧 성능이 저하됩니다. 데모라면 괜찮아요.하지만 실제 앱에서는 룩과 퍼포먼스 모두에 미리 이미지를 사용하고 싶을 것입니다. – estus

+0

@estus 미리 만들어진 이미지를 사용하면 52 문장으로 끝날 것입니다. 더 좋은 방법이 있어야합니다. –

+0

@estus 코드에 솔루션을 넣으시겠습니까? 따라 가기가 어렵습니다. –

답변

0

ng-bind 바인딩 단방향 데이터가 .

ng-model

이 당신은 ng-bind

<div ng-bind-html="card_value"></div> 

DEMO APP

+0

왜 ng-model 대신 이것을 사용합니까? –

+0

@ b11 div에서 ng-model을 사용할 수 없으면 설명서에 따라 다음을 사용할 수 있습니다. ngModel 지시문은 NgModelController를 사용하여 범위의 속성에 input, select, textarea (또는 사용자 정의 양식 컨트롤)을 바인드합니다. 이 지시문에 의해 생성되고 노출됩니다. 예제에서 [ng-bind] (https://docs.angularjs.org/api/ng/directive/ngBind)의 – Sajeetharan

+0

과 같이 입력에 'ng-model'을 넣고 span 요소. 카드는 내가 만든 명령이 아니기 때문에 제 경우에 사용하겠습니까? –

관련 문제