假設我想使用角度創建ToDo列表。我有一個REST API,它將數據存儲在數據庫中,並提供基本的操作。現在,當我想將角度應用連接到REST api時,我發現有兩種方法可以在一些教程聯機後執行此操作:Angular.js只在前端或後端處理數據
1.僅在後端處理數據:創建具有getAllTodos功能的服務。此功能直接附加到示波器上(例如,在ng-repeat中使用它):
var getAllTodos = function() {
//Todo: Cache http request
return $http...;
}
var addTodo = function(todo) {
//Todo: Clear cache of getAllTodos
$http...
}
2.數據也在前端處理。有一個初始化函數可以初始化服務中的待辦事項變量。
var todos = [];
var init = function() {
$http...
todos = //result of $http;
};
var getAllTodos = function() {
return todos;
};
var addTodo = function(todo) {
$http...
todos.push(todo);
}
我在幾個教程中看到了兩種方式,但我想知道什麼是最好的方法?第一個用於許多教程,作者從一開始就考慮將其附加到REST API。第二種方法通常在作者最初想要在前端創建功能並且後來想要使用後端永久存儲數據時使用。
兩種方式都有其優點和缺點。第一個減少了前端和後端的代碼重複,第二個允許更快的操作,因爲它可以先處理前端,後端可以通知事後更改。
//編輯:前端是我的Angular.JS客戶端,後端服務器上的REST API。