2015-04-08 81 views
2

我需要在angularJS應用程序中將部門分配給一個員工。 我在服務器端創建了返回可能值的JSON數組的API資源。服務器提供的AngularJS枚舉

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

並與部門的ID,像這樣我的僱員資源工程..

{ 
    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

真棒:)謝謝你快速answerr – Peracek