Tôi muốn thiết lập lời hứa và sau đó ném nó vào chỉ thị (sử dụng kiểu thuộc tính '=' thuộc tính) và thực hiện phép thuật then
trong chỉ thị, nhưng lời hứa như một thuộc tính dường như dẫn đến lời hứa được giải quyết là undefined
, do đó, then
(và bất kỳ chức năng lời hứa nào khác) không khả dụng.Làm cách nào để chuyển lời hứa dưới dạng thuộc tính chỉ thị trong Angular
Trả lời
tôi nghi ngờ điều này là do tinh chỉnh cụ thể này:
$ q lời hứa được công nhận bởi các công cụ khuôn mẫu trong góc, có nghĩa là trong các mẫu bạn có thể đối xử với những lời hứa gắn liền với một phạm vi như thể họ là những người kết quả giá trị - angular $q docs
và điều này về cơ bản dẫn đến sự hứa hẹn đang được chuyển đổi bên trong mẫu với giá trị $$v
rằng lời hứa sử dụng để lưu trữ các giá trị kết quả, và ở giai đoạn liên kết này là khả năng vẫn không xác định - giá trị được chuyển đổi (tức là không xác định), không phải chính lời hứa sau đó được chuyển vào chỉ thị.
Cách giải quyết không được sử dụng chính lời hứa khi thuộc tính được chuyển vào chỉ thị, nhưng để làm cho nó trở thành một phần của đối tượng mẹ: đối tượng mẹ sẽ không chạy $ q/template engine, và vì vậy bạn ' sẽ có thể đi sâu vào lời hứa từ phụ huynh và truy cập chức năng then
từ đó.
Xem http://jsfiddle.net/cebjyre/95sjT/ cho một ví dụ - uncommenting dòng 32 sẽ gây ra một sự thất bại do lời hứa cấp cao nhất không còn thực sự là một lời hứa tại thời điểm đó, trong khi lời hứa mức thứ hai trên dòng 17 tác phẩm mỹ
Cảm ơn. Tôi đã thêm tài liệu này vào tài liệu Góc.
http://docs.angularjs.org/api/#comment-984109158
Để đạt được điều này quấn lời hứa của mình trong các phụ huynh: $ scope.myDirectiveAtrribute = {lời hứa: deferred.promise} và sau đó trong việc tiếp cận thị lời hứa
$ phạm vi. myDirectiveAtrribute.promise.then (hàm() {});
Cảm ơn bạn đã chia sẻ. Giải pháp của bạn đang hoạt động! – ValeriiVasin
Tôi cũng đã sử dụng chiến lược này bằng cách sử dụng các thành phần Angular 1.5. Tôi đã sử dụng angular.element (document) .ready() và sau đó truy cập lời hứa từ cuộc gọi lại đã sẵn sàng. Có lẽ một trường hợp sử dụng để gắn bó với các chỉ thị thay vì các thành phần nhưng nó hoạt động. – mbokil
- 1. Angular 1.1.5 thử nghiệm dịch vụ dựa trên lời hứa
- 2. Làm cách nào để chuyển nhiều thuộc tính vào một chỉ thị thuộc tính Angular.js?
- 3. Trong Angular JS, làm cách nào để chèn dữ liệu từ thuộc tính chỉ thị vào mẫu?
- 4. Chuyển thuộc tính dưới dạng thông số trong phương thức
- 5. tệp thuộc tính java dưới dạng enum
- 6. Làm cách nào để hiển thị MvcHtmlString dưới dạng HTML
- 7. Sử dụng lời hứa trong AngularJS Views
- 8. làm cách nào để hiển thị chuỗi dưới dạng nội dung html ở dạng web
- 9. Tệp thuộc tính Spring dưới dạng xml
- 10. Chuỗi lời hứa AngularJS
- 11. Làm cách nào để chỉ định giá trị cho thuộc tính Trả lời MailMessage?
- 12. angular-ui bootstrap accordion: Làm cách nào để tôi xem đúng thuộc tính đang mở?
- 13. Hủy lời hứa hoãn lại trong jQuery
- 14. Làm cách nào để thực thi các lời hứa jQuery trong phantomJS?
- 15. Làm cách nào để hiển thị biến của hàm tạo (sic!) Dưới dạng chỉ đọc?
- 16. Cách kiểm tra lời hứa với Mocha
- 17. Làm cách nào để tạo lời hứa trong Ember.js cho mô hình dữ liệu Ember
- 18. Làm cách nào để chuyển một tệp dưới dạng đối số dòng lệnh trong Netbeans
- 19. Chúng ta có thuộc tính Button xuống dưới dạng Boolean
- 20. Làm cách nào để tạo thuộc tính chỉ đọc?
- 21. Làm cách nào để hủy bỏ chuỗi lời hứa của node.js bằng Q?
- 22. Dừng một chuỗi AngularJS lời hứa
- 23. Chuyển giá trị enum dưới dạng thuộc tính thẻ trong JSP
- 24. Lời hứa hoạt động như thế nào trong JavaScript?
- 25. Có thể đánh dấu thuộc tính được hiển thị trong lưới thuộc tính dưới dạng trường mật khẩu
- 26. SQL FOR XML - Xuất dữ liệu dưới dạng Phần tử hoặc dưới dạng Thuộc tính
- 27. RichTextBox trong WPF không có thuộc tính dưới dạng .Lines?
- 28. Thuộc tính Moose ArrayRef được trả về dưới dạng Array
- 29. Làm cách nào để trả lại lời hứa không thành công?
- 30. Sửa đổi thuộc tính định dạng java.util.logging.SimpleFormatter dưới Tomcat
Cảm ơn. Điều này nên được chọn là câu trả lời đúng – manikanta
Cảm ơn câu trả lời hữu ích đó. Đó là một mụn cóc khá khó chịu trên Angular mặc dù - nó xử lý ràng buộc để hứa hẹn minh bạch trực tiếp trong xem, nhưng không phải trong các mẫu. Vì vậy, ngay cả khi bạn muốn truyền dữ liệu thẳng, bạn phải bọc nó trong một lời hứa và một đối tượng bao bọc. Và bây giờ mẫu chỉ thị của tôi có đầy đủ tính xấu như '{{itemList.promise [index]}}'. Chỉ thị không phải là liền mạch như tôi muốn. –
từ lời hứa 1,2 góc cạnh không còn được công nhận bởi động cơ templating –