2013-01-30 24 views
5

Tôi có một chỉ thị tải một tệp JSON sau đó sử dụng dữ liệu đó để tạo bản vẽ canvas HTML5 (tức là dữ liệu json chứa những thứ như văn bản, màu sắc, vị trí). Tôi cũng có một số trường nhập (văn bản, thanh trượt, v.v.) cho phép người dùng thao tác bản vẽ. Tôi thấy rằng tôi có thể $ xem mỗi phần tử này hoặc sử dụng ng-click và gọi hàm - có cách tiếp cận được đề nghị không?ng-click vs xem trong Angular

Một số lưu ý có lẽ có liên quan:

  • Yếu tố hình thức và vải đều là một phần của mẫu chỉ thị tương tự
  • Các yếu tố hình thức phản ứng onchange vì vậy không nút gửi
  • Mỗi giá trị yếu tố hình thức được kiểm tra, có thể chuyển đổi sau đó họ sửa đổi chuỗi json. Sau đó, tôi gọi hàm làm mới tải lại canvas của tôi bằng dữ liệu mới.

Có thể là tôi đang tiếp cận này một cách sai lầm quá ...

Trả lời

7

Vì vậy, từ những gì tôi hiểu có một số hành động của người dùng trên một số yếu tố (trong vòng một chỉ thị) và bạn phải làm điều gì đó mỗi khi các sự kiện này được kích hoạt.

Mục đích của đồng hồ $ là 'xem'/làm điều gì đó mỗi khi giá trị của biến cụ thể thay đổi. $scope.$watch('watchedVariable', onWatchedVariableChangedFn) trong đó onWatchedVariableChangedFn là một hàm. Điều này chỉ được kích hoạt khi giá trị thực sự thay đổi, bất kể nguyên nhân gây ra thay đổi.

Mặt khác, bạn có thể nối các trình xử lý sự kiện vào các thuộc tính đánh dấu, như ng-click='onClickFn()'. Chúng được kích hoạt từ các hành động trên các phần tử giao diện người dùng. [Cũng lưu ý ng-click sẽ chỉ hoạt động trên các phần tử có thể nhấp. Bạn dường như có nhiều yếu tố (văn bản, thanh trượt, v.v.).

Bạn có thể phải xem chính xác những gì có thể gây ra sự thay đổi của các giá trị này/khiến bạn vẽ lại khung hình và sau đó quyết định bạn muốn đi theo cách nào.

Chỉnh sửa: Thay thế thứ ba bạn có thể muốn xem xét là kích hoạt sự kiện ($ emit/$ broadcast) và xử lý ($ on) những sự kiện đó nếu có.

Các vấn đề liên quan