В моей угловой службе, как я могу инициализировать переменную один раз из $ ресурса

0

То, что я хочу сделать, - это только один раз загрузить объект из ресурса, который будет постоянным шаблоном для различных вызовов, обслуживаемых моей службой позже. Я думаю, что моя фабричная функция сервиса будет выглядеть примерно так:

function assetService($resource, DataConstants){
    var assetTemplate = $resource(DataConstants.PATH_GET_ASSET).get({});
    return {
        createAsset: createAsset
    };

    function createAsset(subscription){
        var Asset = $resource("/assets");
        var newAsset = new Asset(assetTemplate);
        newAsset.serialNo = subscription.serialNumber;
        return newAsset.$save().$promise;
    }
}

Я думаю, что у моего кода есть проблемы... что, если мой $ resource code для инициализации objectTemplate терпит неудачу? Могу ли я получить совет по наилучшему способу однократной инициализации переменной, используемой снова и снова в моем сервисе?

  • 0
    $resource - это уровень абстракции API. Поскольку ваши данные постоянны, и все, что вам нужно, это сохранить их, используя $localStorage , $sessionStorage или $cookies .
  • 0
    Я бы предпочел, чтобы assetTemplate был доступен только в assetService. Я думаю, что $ localStorage, $ sessionSorage и $ cookies имеют гораздо более широкую доступность.
Теги:

1 ответ

0

Лучший способ - использовать службу или localStorage. Таким образом, переменная может сохраняться. Вам нужно будет вводить службу везде, где вам нужен доступ к данным.

  • 0
    localStorage звучит как больше, чем мне нужно. Мне не нужна переменная, доступная за пределами моего assetService. Вероятно, все, чего я пытаюсь добиться - это получить значение шаблона только один раз при запуске приложения. Является ли создание другого сервиса для этой детали реализации моим единственным вариантом?
  • 0
    LocalStorage останется без изменений при обновлении страницы. если вы сохраняете постоянные данные, то служба будет в порядке.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню