我是 angularjs 的新手,在我的应用程序中我正在进行 REST API 调用,返回的响应存储为模型对象。对于我的观点,我创建了一个单独的视图模型对象,因为来自 API 的响应不能在 UI 中使用。
这是一个正确的方法吗?请注意,我使用了两种不同的模型 -> 一个从服务器获取数据,另一个用作 UI 支持模型。这类似于 Java 框架中的支持 bean 和 DAO 对象。
请告知这种方法是否可行或是否应该改变。如果有怎么办?
更新在http://jsfiddle.net/LGEKX/ 中说明了这个问题
function mycontroller($scope){
//The view model is populated by a seperate method
var viewmodel = populateViewModel();
$scope.viewmodel = viewmodel;
}
function populateViewModel(){
//Call service to update local model
var backendModel = serviceCall();
//Invoke conversion service
var converteModel = convertBackEndModel(backendModel);
}
function serviceCall(){
//Service method calls server side API and the data returned is returned in success callback
$http({method: 'GET', url: '/someUrl'}).
success(function(data, status, headers, config) {
return data;
}).
error(function(data, status, headers, config) {
...
});
}
function convertBackEndModel(data){
//This takes the data returned from API call as input and creates a view model
//which will be used for angularjs view (in HTML)
var viewModel = {};
viewModel.name = backendModel.backendName;
//Though this is simple, actual code has lots of logic which basically converts one JSON structure to another
}
在我的 HTML 中
<div ng-app>
<div ng-controller="mycontroller">
<!-- Binding to viewmodel from the HTML-->
<div ng-model="viewmodel.name"></div>
</div>