2015-04-08 3 views
2

Мне нужно назначить отдел сотруднику в приложении angularJS. Я создал ресурс API на стороне сервера, который возвращает массив JSON возможных значений.AngularJS перечисления, предоставляемые сервером

[ 
    {"id":0,"name":"human resources"}, 
    {"id":1,"name":"public relations"}, 
    {"id":2,"name":"development"} 
] 

И мой ресурс Сотрудник работает с идентификаторами отдела, как так ..

{ 
    employeeId: 1, 
    firstName: "Adam", 
    lastName: "Abrons", 
    departmentId: 2 
} 

Я хочу использовать эти значения в угловой фильтр для просмотра сотрудника и ngOptions директивы для редактирования сотрудника.

Поскольку эти значения перечисления довольно стабильны, как их загрузить один раз и сохранить их на стороне клиента, пока пользователь не покинет веб-сайт?

+0

Я лично использую перечисление из мангустов схемы, http://mongoosejs.com/docs/api.html#schema_string_SchemaString-enum – YOU

+0

Вы загружаете их и храните HTTP обещание в переменной службе. Вы получаете это обещание от службы каждый раз, когда вам это нужно. –

+0

Раньше я использовал html localStorage для этого рода, но вы также можете использовать кеш angular.js: http://stackoverflow.com/questions/14117653/ – Tsar

ответ

1

Вы можете использовать построить его кэш особенность $http модуля

$http.get('/api/enums', {cache: true}).success(function(enums){ 
}); 

Кроме того, вы также можете обернуть его как service

angular.module('app').service('enumService', function ($http) { 

    return { 
     getEnums: getEnums 
    }; 

    function getEnums(){ 
     return $http.get('/api/enums', {cache: true}); 
    } 
}); 

Другой способ с помощью обещание (кредит на комментарий JB Nizet)

angular.module('app').service('enumService', EnumService); 

function EnumService($http) { 

    var getEnumsPromise = $http.get('/api/enums'); 

    return { 
     getEnums: getEnums 
    }; 

    function getEnums(){ 
     return getEnumsPromise; 
    } 
} 
+0

Вы можете просто использовать 'var result = $ http.get ('/api/enums '); 'и вернуть этот результат из' getEnums() ' –

+0

Awesome :) спасибо за быстрый ответ – Peracek

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