2015-06-01 19 views
8

Tôi đang cố gắng lấy dữ liệu qua tập lệnh php hoạt động trong Polymer 0.5. Tôi chỉ nhận được phản hồi null và không có lỗi trong Polymer 1.0, bên dưới là mã. Tôi đã thử sửa đổi PHP để echo bất cứ điều gì nhưng tôi không nhận được phản hồi. hresponse không kích hoạt nhưng tại thời điểm đó, chỉ có thông tin yêu cầu là ajax, thông tin phản hồi là rỗng. Tôi không thể tìm thấy một ví dụ để xem nơi tôi đã đi sai. Cảm ơnPolymer 1.0 Iron-Ajax

<iron-ajax 
     id="ajax" 
     url="" 
     params="" 
     handle-as="json" 
     on-response="hresponse" 
     debounce-duration="300"> 
</iron-ajax> 

and the script 

setajax: function(){ 
    this.$.ajax.url = "Scripts/getnotes.php"; 
    this.$.ajax.params='{"SN":"VBA056"}'; 
    this.$.ajax.generateRequest(); 
} 

hresponse: function(e) { 
     console.log(e.detail.response); 
     console.log(this.$.ajax.lastResponse); 
} 

Trả lời

0

Lần đầu tiên tôi trả lời và một người mới lập trình, do đó, nó không hoàn toàn chính xác. Nhưng nó có thể giúp bạn

Không có tài sản như on-response theo tài liệu hướng dẫn được cung cấp trong https://elements.polymer-project.org/elements/iron-ajax

bạn iron-ajax đã được sửa đổi, tôi quá là một newbie, vì vậy tôi tự hỏi, nếu nó hoạt động, nhưng cũng đáng thử.

<iron-ajax 
     auto 
     url="" 
     params="" 
     handleAs="json" 
     lastResponse="hresponse" 
     method='GET'> 
</iron-ajax> 

Ngoài ra tôi tự hỏi nếu tập lệnh của bạn hoạt động như thế.

+2

tính yếu tố Polymer sẽ được tự động thay đổi từ camelCase to-thấp-trường hợp hyphenated thuộc tính (tính v1.0.0). –

+2

"hresponse" phải là "{{hresponse}}" để bật tính năng ràng buộc –

+0

'iron-ajax' có thuộc tính phản hồi và do đó nó hợp lệ. 'lastResponse' là chỉ đọc và nhận trong một chuỗi không phải là một hàm. Bất kỳ chuỗi nào bạn cung cấp cho nó sẽ là chuỗi bạn sử dụng khi gọi dữ liệu của bạn trong mẫu. Vì vậy, nếu bạn thực hiện 'lastResponse: item', bây giờ bạn có thể gọi {{item}} trong đánh dấu của mình để truy cập dữ liệu - giả sử phản hồi ajax của bạn là đúng loại và không cần phải được phân tích cú pháp. – shortdiv

25

Khi bạn thêm this.$.ajax.params= bên trong tập lệnh, nó phải là một đối tượng. Khi bạn nhìn vào vị trí bên trong iron-ajax.html nơi yêu cầu được tạo, bạn sẽ thấy lý do tại sao đây là trường hợp. Bạn hiện đang thêm nó dưới dạng Chuỗi. Hãy thử đặt đường dây thành this.$.ajax.params={"SN":"VBA056"} và nó sẽ hoạt động.

Ví dụ sau đây làm việc (giả sử bạn đang nhập khẩu tất cả các yếu tố bắt buộc):

<body> 
<my-app></my-app> 
<dom-module id="my-app"> 
<style> 
</style> 
<template> 

    <iron-ajax 
     id="ajax" 
     url="" 
     handle-as="json" 
     on-response="hresponse" 
     debounce-duration="300"> 
    </iron-ajax> 

    <button on-click="setajax">Click me</button> 

</template> 
<script> 
Polymer({ 
    is: "my-app", 
    setajax: function() { 
    this.$.ajax.url = "http://jsonplaceholder.typicode.com/posts"; 
    this.$.ajax.params = {"userId":"1"}; 
    this.$.ajax.generateRequest(); 
    }, 
    hresponse: function(request) { 
    console.log(request.detail.response); 
    console.log(this.$.ajax.lastResponse); 
    } 
}); 
</script> 
</dom-module> 
</body> 
+1

Đó là cảm ơn bạn, nó đã thay đổi kể từ phiên bản 0.5, tôi đã không nhận thấy các thông số đã thay đổi. Bây giờ làm việc nhờ một lần nữa – user2148935

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