2015-06-21 7 views
0

Я только что начал использовать refluxjs/response with webpack. Мне очень понравился асинхронный шаблон listenAndPromise, но я столкнулся с проблемой. Я получил следующий код:Асинхронные запросы с данными из магазина

Действие:

var ResumeService = require('services/ResumeService'); 
var ResumeActions = Reflux.createActions({ 
    'save': { 
     asyncResult: true 
    } 
}); 
ResumeActions.save.listenAndPromise(ResumeService.save); 

ResumeService:

var http = require('utils/http'); 
var ENDPOINT = '/resumes/'; 
module.exports = { 
    save: function() { 
     return http.post(ENDPOINT + 'save', { 
      resume: ?????????? 
     }); 
    }, 
} 

И часть магазина:

var RendererActions = require('actions/RendererActions'); 
var ResumeStore = Reflux.createStore({ 
    listenables: [ResumeActions], 
    resume: Immutable.fromJS(ResumeExample), //nested object 

    onSaveCompleted: function(id) { 
     ..... 
    }, 

    onSaveFailed: function() { 
     .... 
    } 
    ... 
}); 

Таким образом, когда пользователь делает изменения, резюме переменная в магазине обновляется. Теперь пользователь хочет сохранить изменения, и он нажал кнопку, которая вызывает Action.save(). Вот моя проблема: как я могу передать переменную resume из магазина в файл service выше?

Странная вещь, что если я var Store = require('stores/ResumeStore'); в файле service, он имеет значение object {}, это происходит только тогда, когда я включаю в магазин на службе, я думаю, что это что-то делать с бесконечной петлей, требующей или что-то вроде это. (Магазин требует действия, действие требует службы, требуется обслуживание)

ответ

0

Почему бы вам просто не добавить резюме в качестве параметра в методе сохранения в ResumeService?

module.exports = { 
    save: function(resume) { 
     return http.post(ENDPOINT + 'save', { 
      resume: resume 
     }); 
    }, 
} 

Тогда ResumeActions.save.listenAndPromise(ResumeService.save); должен работать. listenAndPromise просто передает полезную нагрузку действия до своего аргумента обратного вызова.

 Смежные вопросы

  • Нет связанных вопросов^_^