Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将重新启动的响应转换为模型对象_Javascript_Angularjs_Model_Restangular - Fatal编程技术网

Javascript 将重新启动的响应转换为模型对象

Javascript 将重新启动的响应转换为模型对象,javascript,angularjs,model,restangular,Javascript,Angularjs,Model,Restangular,我们正在构建AngularJS应用程序,并为REST-API使用Restangular 现在我的想法是将API的响应转换为类型化模型JS对象。因此,如果字段名与我们的代码逻辑不同,并且我们在前端代码中独立于API中的命名更改,那么我们就不太依赖API。但这就是解决问题的方法吗 当我们想回到API时,我就不知所措了。“restanguarlized”对象的所有功能在新类型化模型对象中丢失。如何根据API将其转换回post 我的方法错了吗 但是如果API更改了某些属性,那么不会中断的可靠代码呢?或者

我们正在构建AngularJS应用程序,并为REST-API使用Restangular

现在我的想法是将API的响应转换为类型化模型JS对象。因此,如果字段名与我们的代码逻辑不同,并且我们在前端代码中独立于API中的命名更改,那么我们就不太依赖API。但这就是解决问题的方法吗

当我们想回到API时,我就不知所措了。“restanguarlized”对象的所有功能在新类型化模型对象中丢失。如何根据API将其转换回post

我的方法错了吗

但是如果API更改了某些属性,那么不会中断的可靠代码呢?或者,在不查看REST-API响应的情况下,如何查看模型提供的属性。在我的经典编程方式中,我打开了我的模型类,可以查找模型对象提供的所有属性

谢谢

下面是一些简化的实现示例代码:

函数类型模型(数据){
this.foo=data.bar;
}
变量类型模型;
restanglar.one('service','infos').get().then(函数(数据){
typedModel=新的typedModel(数据);

});我认为你的方法没有任何问题,没有。也许你已经习惯了强类型语言,比如Java?我花了一些时间来适应Javascript,因为它的类型太松散了

我不确定这是否有帮助,但我已经开始按如下方式设置我的课程:

function TypedModel(pojo) {
    if (!TypedModel.validate(pojo)) {
        //Throw an exception if the POJO is not valid.
    }
    this.foo = pojo.foo;
    this.bar = pojo.bar;
    this.fooBar = pojo.fooBar;
}

TypedModel.validate = function(pojo) {
    return (pojo.foo && pojo.bar && pojo.fooBar);
};
这意味着我可以确切地看到我的类应该具有哪些属性,如果API发生了变化,那么我知道我需要改变我的类

但我也正在转向Typescript,因为它使处理模型变得更加容易。我绝对会推荐你去看看TS


欢迎评论:)

我认为你的方法没有任何问题,没有。也许你已经习惯了强类型语言,比如Java?我花了一些时间来适应Javascript,因为它的类型太松散了

我不确定这是否有帮助,但我已经开始按如下方式设置我的课程:

function TypedModel(pojo) {
    if (!TypedModel.validate(pojo)) {
        //Throw an exception if the POJO is not valid.
    }
    this.foo = pojo.foo;
    this.bar = pojo.bar;
    this.fooBar = pojo.fooBar;
}

TypedModel.validate = function(pojo) {
    return (pojo.foo && pojo.bar && pojo.fooBar);
};
这意味着我可以确切地看到我的类应该具有哪些属性,如果API发生了变化,那么我知道我需要改变我的类

但我也正在转向Typescript,因为它使处理模型变得更加容易。我绝对会推荐你去看看TS


欢迎评论:)

要了解我的问题,您必须使用Restanglar。您可以从RESTAPI获取请求实体,并返回特殊许可的对象。如果将它们转换为新对象,则“特殊”行为(以函数等形式)将丢失。我确实使用了Restanglar,是的,但我不知道在将对象保存为TypedModel后如何保留Restanglarized功能。当我需要保存的时候,我只是做一个“post”。但我同意,这很好。要理解我的问题,你必须使用restanglar。您可以从RESTAPI获取请求实体,并返回特殊许可的对象。如果将它们转换为新对象,则“特殊”行为(以函数等形式)将丢失。我确实使用了Restanglar,是的,但我不知道在将对象保存为TypedModel后如何保留Restanglarized功能。当我需要保存的时候,我只是做一个“post”。但我同意,那会很好。