그냥, 내가 GET 요청시 전송받을하는 매개 변수를 결정하기 위해 체크 박스를 사용하고 각도에 시작 (이것은 나의 시도) :체크 박스가 선택되었는지 여부에 따라 데이터를 바인딩하는 방법은 무엇입니까?
<input type="checkbox" ng-click="submit('color[]', 'red')"/>
<input type="checkbox" ng-click="submit('color[]', 'green')" checked/>
<input type="checkbox" ng-click="submit('color[]', 'blue')"/>
내 HTTP GET의 매개 변수를 저장하는 변수 $scope.params
이 의뢰. 제출 내 기능은 매우 간단합니다 :
$scope.submit = function (attribute, value) {
$scope.params[attribute] = value;
};
그것은 단순히 params 객체에 color[]
를 추가합니다. 라디오와 달리 체크 박스 값은 배열로 저장되어 다음과 같이 제출 될 수 있습니다 : api?color[]=red&color[]=green
백엔드가 PHP이므로 이것이 선호되는 형식입니다. 그러나 내 제출 기능은 매번이 내용을 덮어 씁니다. 동일한 "키"로 여러 매개 변수를 저장하는 방법을 잘 모르겠습니다.
다른 문제는 ng-click
이이 체크 박스의 현재 상태를 반영하지 않기 때문에이 작업에 적합하지 않다는 것입니다. 내 초록색 체크 박스는 처음에 선택 상태로로드됩니다. 이것을 내 $scope.params
객체에 바인딩하는 방법이 있습니까? 아래 세미콜론의 대답에 따르면, 내가 사용할 수 있습니다
$scope.params = {
"color[]" = ['red', 'green', 'blue']
};
:
이<input type="checkbox" ng-model="params.colors[]" ng-true-value="'red'"/>
<input type="checkbox" ng-model="params.colors[]" ng-true-value="'blue'"/>
<input type="checkbox" ng-model="params.colors[]" ng-true-value="'green'"/>
그러나 "[]"
에 어떤 이름을 지정하는 것은 단지 코드를 나누기
이상적으로 내가 좋아하는 뭔가를 구현하고자합니다.
그래,'ng-click' 사용을 중지했습니다. 체크 박스가 부울 입력임을 이해하지만 ng-true-value 일 때 색상 배열에 'red'를 추가하고 (최신 편집 참조) ng-false-value 일 때 (즉, 값이없는 경우) 제거 할 수 있습니까? –
그것은 Angular 질문이 아니라 JS 질문입니다. 속성 이름에 대괄호를 사용하려면 대괄호 표기법을 사용하여 따옴표로 묶은 문자열이어야합니다.'ng-model = "params [ 'colors []']"' – Semicolon
그러나 이러한 이름은 혼란 스러울 수 있습니다. 귀하의 PHP가 그러한 자바 스크립트 친화적 인 명명 규칙을 요구한다면 실제로 제출 될 때 데이터를 변환하는 것이 좋습니다. – Semicolon