2013-05-10 33 views
15

Bất kỳ ai có thể vui lòng chỉ cho tôi một ví dụ làm việc về liên kết (với hasMany và thuộcTo) trong ExtJS. Xin đừng chỉ cho tôi tài liệu Sencha hoặc bất kỳ ví dụ liên quan đến Sencha bởi vì tôi đã cố gắng gần như tất cả mọi thứ nhưng không ai trong số họ làm việc ...Mẫu liên kết trong extjs 4.2:

Trả lời

9

Chạy mẫu (bật giao diện điều khiển trình duyệt của bạn):

http://jsfiddle.net/4TSDu/52/

Ext.define('My.model.Author', { 
    extend:'Ext.data.Model', 
    fields:[ 
     'name' 
    ] 
}); 

Ext.define('My.model.Comment', { 
    extend:'Ext.data.Model', 
    fields:[ 
     'emailAddress', 
     'body' 
    ] 
}); 

Ext.define('My.model.BlogPost', { 
    extend:'Ext.data.Model', 
    fields:[ 
     'title', 
     'body' 
    ], 
    belongsTo:[ 
     { 
      name:'author', 
      instanceName:'author', 
      model:'My.model.Author', 
      getterName:'getAuthor', 
      setterName:'setAuthor', 
      associationKey:'author' 
     } 
    ], 
    hasMany:[ 
     { 
      name:'comments', 
      model:'My.model.Comment', 
      associationKey:'comments' 
     } 
    ], 
    proxy:{ 
     type:'ajax', 
     url:'https://dl.dropboxusercontent.com/u/1015920/Ext/blog-posts.json', 
     reader:{ 
      type:'json', 
      root:'data' 
     } 
    } 
}); 

My.model.BlogPost.load(1, { 

    success:function(record, operation){ 

     console.log(record.get('title')); // "some title" 

     console.log(record.getAuthor().get('name')); // "neil" 

     console.log(record.comments().getCount()); // 2 

    } 
}); 

đọc thêm ở đây:

http://extjs-tutorials.blogspot.ca/2012/05/extjs-belongsto-association-rules.html

http://extjs-tutorials.blogspot.ca/2012/05/extjs-hasmany-relationships-rules.html

Các dữ liệu mẫu sử dụng:

{ 
    "data": [ 
     { 
      "id": 1, 
      "title": "some title", 
      "body": "some body", 
      "author": {"id":1, "name": "neil"}, 
      "comments": [ 
       { 
        "id":55, 
        "emailAddress": "[email protected]", 
        "body": "test comment" 
       }, 
       { 
        "id":66, 
        "emailAddress": "[email protected]", 
        "body": "another comment" 
       } 
      ] 
     } 
    ] 
} 
+0

Hi Neil, Xin lỗi vì sự chậm trễ trong phản ứng của tôi. Tôi đã cố gắng để chạy này nhưng không thể có được bất kỳ đầu ra trong giao diện điều khiển. Tôi đã đặt toàn bộ mã trong một hàm onReady, đã tạo một tệp json với dữ liệu mà bạn đã đề cập. Dữ liệu đang được tìm nạp (kiểm tra bảng điều khiển firebug) nhưng có vẻ như chức năng thành công chưa bao giờ được gọi. Và tôi đã không thể nhìn thấy bất kỳ đầu ra giao diện điều khiển trong jsFiddle mà bạn đã đưa ra. Bạn có thể vui lòng cho tôi biết nếu tôi đang làm gì sai ở đây ... – CARTIC

+0

kiểm tra/hoạt động trong chrome, firefox và safari. đang sử dụng dữ liệu từ xa vì vậy sẽ không hoạt động trong IE (mặc dù có thể trong IE10). bạn đang sử dụng cái gì –

+0

Xin chào Neil, tôi đã thử với firefox 20.0.1, chrome 26.0 và IE 8. Tôi thấy rằng bản thân tệp json hiện không được tìm nạp trong jsFiddle và điều này là do tường lửa và cài đặt bảo mật (chính sách công ty). Có cách nào để thêm dữ liệu nội tuyến trong JsFiddle không. Ngoài ra, xin vui lòng cho tôi biết nếu cách tôi đang cố gắng chạy mẫu từ nhật thực là chính xác (trong bình luận trước đó của tôi). Ở đó tôi đã có thể lấy dữ liệu json nhưng chức năng thành công không bao giờ được gọi. Tôi đã thử rằng với firefox 20 với firebug được cài đặt trong nó ... – CARTIC

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