Angular区分服务器模型和客户端视图模型的方式
Angular way to differ server model and client view model
我只是想知道在Angular应用程序中从服务器查看模型数据的最佳实践是什么?
例如,在我的控制器我从服务器(自定义ngResource
服务)获取模型,然后我需要在我的应用程序的客户端创建一些不同的模型:
customApiService.query({ url: 'items' }, function (res) {
// made it like this and do everything in partials with "ng-repeat"?!
$scope.items = res;
// but i need to model server data on client...
angular.forEach(res, function (key, i) {
$scope.viewModel = {
description: key.anotherNameField // e.g. different third-party services return description under different names
};
});
});
我们所做的是这样的情况是不使用angular resource
直接在控制器。我们创建自己的服务
appRoot.factory('modelService', ['$resource', '$q', function ($resource, $q) {
function ModelClass() {
this.PropertyOne=null;
this.PropertyTwo=null;
}
var serviceObj= {
getData: function () {
$resource('url').query(function(data) {
var modelList=[];
//Do a foreach on each record in 'data' and create 'ModelClass' object and map properties
return modelList;
});
}
}
return serviceObj;
}]);
这允许我们更多地控制暴露给控制器和视图的内容。这里模型的所有权属于服务。
由于相同的服务可以被注入到任何地方,所以我们不必一次又一次地自定义映射。
相关文章:
- 如何在视图模型contet更新更新上调用Jquery函数
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 在MVVM视图模型中处理应用程序范围的元素
- 将c#视图模型转换为javascript模型时转义HTML标记
- 使用knockout.js将数组绑定到视图模型
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- 聚合物:在不同的视图模型中多次使用元素
- 使用AMD时未定义淘汰组件视图模型
- 如何在Knockout.js中选中复选框时更新视图模型及其依赖项
- 无法将对象列表从视图模型设置为 javascript 变量
- 挖空视图模型函数仅影响最后一个实例
- 挖空.js嵌套视图模型不起作用
- 为什么我的视图模型不起作用
- 挖空、视图模型位于其他对象和数据绑定中
- 如何将经度/经度值绑定到挖空视图模型方法
- 挖空.js:等待视图模型实例化完成
- 在Knockout视图模型中调用jQuery插件是一种有效的模式
- KnockoutJS:如何避免在applyBindings上运行视图模型函数
- 使用knockoutjs操作视图模型
- Kendo UI自定义验证不适用于模板和视图模型