2014-09-19 15 views
6

Tôi đang thử dùng Loopback cho một API sẽ nói chuyện với Ember.Làm cho API Loopback Ember.js tương thích

Ember yêu cầu JSON phải được chứa trong 'khóa', ví dụ: cho một tài khoản:

{ account: 
    { domain: 'domain.com', 
    subdomain: 'test', 
    title: 'test.domain.com', 
    id: 1 
} } 

Tôi đã tìm thấy một số lời khuyên về nhóm Google về cách thay đổi phản hồi để Ember sẽ nhận được nó, bằng cách sử dụng móc sauRemote.

Ví dụ: trong mô hình của tôi/account.js:

module.exports = function(Account) { 

    Account.afterRemote('**', function (ctx, account, next) { 
     if(ctx.result) { 
     if(Array.isArray(ctx.result)) { 
      ctx.res.body = { 'accounts': account }; 
     } else { 
      ctx.res.body = { 'account': account }; 
     } 
     } 

     console.log(ctx.res.body); 

     next(); 
    }); 

}; 

Tôi thấy rằng phản ứng là vì nó phải ở trong giao diện điều khiển .. tuy nhiên sản lượng JSON ở localhost: 3000/api/tài khoản không hiển thị các đối tượng JSON thay đổi.

Cách chính xác để thay đổi phản hồi/yêu cầu JSON trong Vòng lặp là gì?

Lý tưởng theo cách tổng quát để có thể áp dụng cho tất cả các Mô hình.

+0

không "thám hiểm" nghĩa là gì? –

+0

@torazaburo câu hỏi được cập nhật – Adamski

+0

Ember không yêu cầu JSON của bạn phải là bất kỳ thứ gì ngoài JSON. Tôi nghĩ bạn đang đề cập đến bộ điều hợp REST mặc định của dữ liệu Ember. Ember.js không yêu cầu bạn sử dụng dữ liệu Ember. Và ngay cả khi bạn làm thế, bạn có thể viết một adapter tùy chỉnh để xử lý bất kỳ loại JSON nào được gửi đi. – Gaurav

Trả lời

1

Bạn có thể làm Ember dữ liệu tương thích với api loopback Strongloop của bằng DS.RESTAdapter với DS.JSONSerializer như thế này:

// app/adapters/application.js 

import DS from 'ember-data'; 

export default DS.RESTAdapter.extend({ 
    host: 'http://loopback-api-host', 
    namespace: 'api', 
    defaultSerializer: 'JSONSerializer' 
}); 

http://emberjs.com/api/data/classes/DS.JSONSerializer.html

"Trong Ember dữ liệu, logic để giao tiếp với một lưu trữ dữ liệu phụ trợ Bộ điều hợp dữ liệu của Ember có một số giả định tích hợp về cách xem REST API. Nếu các quy ước phụ trợ của bạn khác với các giả định này, dữ liệu Ember giúp dễ dàng thay đổi chức năng của nó bằng cách hoán đổi hoặc mở rộng Adapter mặc định.

http://guides.emberjs.com/v2.0.0/models/customizing-adapters/

câu hỏi tương tự: Strongloop with Emberjs

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