2015-10-30 17 views
17

Có cách nào để chuyển sang chỉ thị góc ng-nhấp vào giá trị của đầu vào được liên kết không?Vượt qua giá trị hộp kiểm tới góc nhìn của góc cạnh

Nói cách khác, những gì nên thay thế this.value trong những điều sau đây:

<input type="checkbox" id="cb1" ng-click="checkAll(this.value)" /> 

PS. Tôi không muốn giải pháp thay thế giá trị thay thế, tôi tự hỏi liệu có thể chuyển giá trị đầu vào làm đối số cho hàm góc hay không.

+0

bạn có thể vui lòng thêm một số mã hơn những gì ở bạn muốn trong checkAll – Mitul

+0

thêm một mô hình trên đầu vào và vượt qua nó trong phương thức – ngLover

+0

Có thể trùng lặp của [Hộp kiểm mắt và ng-nhấp chuột] (http://stackoverflow.com/questions/20290738/angular-checkbox-and-ng-click) – Kulbhushan

Trả lời

26

Bạn có thể làm những điều sau đây:

  • Sử dụng ng-model nếu bạn muốn để ràng buộc một thành phần html để phạm vi góc
  • Thay đổi ng-click để ng-change
  • Nếu bạn có để ràng buộc một số giá trị khi kiểm tra và bỏ chọn hộp kiểm sử dụng ng-true-value="someValue"ng-false-value="someValue"

Thứ tự thực hiện ng-clickng-model không rõ ràng kể từ chúng không xác định mức độ ưu tiên rõ ràng. Thay vào đó, bạn nên sử dụng ng-thay đổi hoặc $watch trên $scope để đảm bảo rằng bạn có được giá trị chính xác của biến mô hình.

Courtesy of musically_ut

Working Demo

<input type="checkbox" id="cb1" ng-model="check" ng-change="checkAll(check)" ng-true-value="YES" ng-false-value="NO"/> Citizen 
1

Gán một ng-mô hình để nó sẽ trở lại giá trị boolean tùy thuộc vào sự thay đổi với nó:

<input type="checkbox" id="cb1" ng-model="checkValue" ng-change="checkAll(checkValue)" /> 

Tốt hơn để sử dụng ng thay đổi chứ không phải là ng-click

+0

Không có nhiều ý nghĩa để vượt qua checkValue làm đối số, vì nó có sẵn trong mô hình ... – Serge

+0

@Serge Có, nó cho phép bạn kiểm soát luồng dữ liệu và nếu ai đó phải đọc mã, nó sẽ dễ dàng hơn nhiều để hiểu nó ở đâu dữ liệu đến từ. – ThibaudL

1

Bind hộp kiểm để một giá trị và chuyển nó đến ng-click.

<input type="checkbox" ng-model="value" id="cb1" ng-click="checkAll(value)" /> 
1

Hôm nay tôi muốn làm điều tương tự và tôi thấy không ai trả lời câu hỏi thực tế. Đây là chống lại triết lý kiễu góc, nhưng bạn có thể thay thế "this.value" với "$ event.target.checked":

<input type="checkbox" id="cb1" ng-click="checkAll($event.target.checked)" /> 
Các vấn đề liên quan