2014-03-25 2 views
0

제품 목록의 양식에 증분/감소 기능을 구현하려고합니다. 아이디어는 제품 수량을 통해 카트를 실시간 업데이트하여 장바구니에 제품을 추가 할 수있게하는 것입니다.각도 형식의 증분 감소 수량

트릭을 수행 할 수 있다고 생각되는 각도 문서에서이 코드 샘플을 발견했습니다. http://docs.angularjs.org/api/ng/directive/ngClick

내가 기대하는 것은 처음 제품을 클릭하면 제품을 추가 한 다음 제품을 탭할 때마다 증가합니다 (다른 솔루션은 html5 숫자 입력란을 스타일링하는 것이지만 여전히 문제가 될 수 있습니다. 양식 필드 논리는)

enter image description here

"order": [{"product_id": "2", "quantity": "10"}, {"product_id": "5", "quantity": "12"}]

내 문제는 다음과 같습니다 - 나는 formData 를 사용하여 폼 오른쪽 (PRODUCT_ID * 수량)를 얻을 수 없다 - Incremen t 수량 기능은

그래서 대신 NG 변화를 사용하여 ... 당신은 단지 ng-model을 결합하여 수량을 설정할 수 있지만, 당신은 전체 개체 {product_id: x, quantity: y}을 설정 찾고 해제 방법

Plunker http://plnkr.co/edit/lCZUXpTeJqGkOllXaS2t?p=preview

<form ng-submit="processForm()"> 
    <pre>{{ formData }}</pre> 

    <ul ng-repeat="product in filtered = (products | orderBy:['name'] | filter:q)"> 
     <li>{{ product.name }} 
     <a ng-click="count = count + 1" ng-init="count=0" ng-model="formData.products">Increment - count: {{count}} 
      <input type="number" ng-model="formData.{{product.id}}" /> 
    </a> 
    </li> 
    </ul> 
</form> 
+0

PLUNKER을하고있다? –

+0

@ wickY26 문제는 모형이 모형보다 훨씬 빠르다는 것입니다. 잠시 후 플 런커 예제를 제공하려고합니다. – olimart

+0

@ wickY26 Plunker 링크가 추가되었습니다. http://plnkr.co/edit/lCZUXpTeJqGkOllXaS2t?p=preview – olimart

답변

1

입니다 formData을 설정하는 NG-모델 ...

HTML의

<input type="number" ng-model="quantity" placeholder="product_{{product.id}}" 
ng-change="changeQuantity($index, product.id, quantity)"> 

CONTROLLER

$scope.changeQuantity =function (index, productId, quantity) { 
    $scope.formData[index] = {product_id: productId, quantity: quantity}; 
}; 
여기

당신이 plunker를 제공하거나 저희에게 당신의 문제가 무엇인지에 대한 자세한 정보를 제공 할 수 있습니다

+0

감사합니다. @ wickY26 수량이 0이거나 0 인 경우 배열에서 제품을 제거하는 아이디어 예를 들어 사용자가 수량을 입력 한 다음 제품을 제거하기로 결정한 경우) – olimart

+0

@olivier plunker updated 체크 ... http://plnkr.co/edit/V1GEsL5IooR8MROuiAoc –

+0

감사합니다. 커피 스크립트로 변환하는 동안 수량을 변경할 때 오류가 발생합니다. '오류 : '정의되지 않음'은 함수가 아닙니다 ('$ scope.formData.push ({ product_id : productId, 수량 : 수량 }') ')' – olimart

관련 문제