首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在angularJS CRUD应用程序中管理数据的最佳方法

在angularJS CRUD应用程序中管理数据的最佳方法
EN

Stack Overflow用户
提问于 2015-03-29 08:29:42
回答 2查看 280关注 0票数 3

首先,我想说英语不是我的母语,如果我不完全清楚的话,很抱歉。

所以,让我说,我想创建一个基本的CRUD应用程序的汽车。将有路线"/cars“与所有汽车的清单。要获得这些汽车数据,我必须调用API,它将同时向我发送关于所有汽车的所有数据,然后显示所有汽车的名称。我觉得我现在说的对吗?

我遇到的“问题”是当用户点击特定的汽车时。它应该将用户重定向到路由"cars/CAR_ID“,并显示该特定car的数据。但是如何获取这些数据呢?我的意思是,是的,我可以只进行一个API调用"/ api /car/CAR_ID",但是如果我已经在第一个api调用中使用了所有的cars,我为什么要这样做呢?我一直在寻找每一个线程,到处都是,他们总是发出另一个api调用,但这对我来说是一种浪费,我无法控制它。每个人都这么做肯定是有原因的,而我却错过了。我的意思是,另一种方法是存储第一个调用的数据,而不是进行第二个api调用,我们可以从第一个调用中获取数据。

我对web开发很陌生,所以最好是对每一个页面提出请求,而不是第一次存储一组大的数据,并在导航过程中使用它。如果是这样的话,我能对这个问题有更多的了解吗,就像问服务器一些我已经知道的东西……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-29 09:59:42

以下是我能想到的选择。

1)使用ui路由器 (我的首选选项)。下面是一个示例路径:

代码语言:javascript
运行
AI代码解释
复制
angular.module('carApp')
  .config(function ($stateProvider) {
    $stateProvider
      .state('cars', {
        url: '/cars',
        templateUrl: 'app/cars/views/index.html',
        controller: 'CarsCtrl',
        resolve: {
          cars : ['Car', function(Car) {
            return Car.list();
          }]
        }
      })
      .state('cars.show', {
        url: '/{carId}',
        views: {
          "@" : {
            templateUrl: 'app/cars/views/show.html',
            controller: 'CarCtrl'
          }
        },
        resolve: { // the cars from the parent route (cars) will be injected into this route
          car: ['$stateParams', 'cars', function($stateParams, cars) {
            // not hitting the web service, find our car using lodash
            return _.find(cars, {_id: $stateParams.carId});
          }]
        }
      })

2)在服务中使用缓存

代码语言:javascript
运行
AI代码解释
复制
angular.module('carApp')
  .service('Car', function Car($http) {
    return {
      list: function() {
        return $http.get('/cars', {cache: true});
      }
    };
  });

第一次调用Car.list()时,它将调用web服务。随后对Car.list()的调用将不会调用web服务。在您的控制器中,您可以调用Car.list并找到与cars.show路由类似的正确的car,或者向服务中添加另一个可以通过ID查找汽车的函数。

票数 0
EN

Stack Overflow用户

发布于 2015-03-30 09:21:37

你的部分问题有不同的答案。

我的意思是,是的,我可以只进行一个API调用"/ api /car/CAR_ID",但是如果我已经在第一个api调用中使用了所有的cars,我为什么要这样做呢?

如果您没有进行第一个api调用,会发生什么情况?我的意思是,我不能直接输入浏览器/api/car/12345吗?让我们以堆栈溢出为例,假设我对这个问题做了书签,然后我直接打开这个页面(假设我没有缓存的数据),而不带问题列表遍历页面。在您的场景中,我将得到一个空白页,因为创建者会假设我首先访问其他页面,这是不合理的(并不总是)。对每个特定实体进行api调用,从一开始就会从这样的陷阱中保存下来,因为它不假定用户的浏览历史记录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29331712

复制
相关文章
JS如何实现勾选全部复选框和不全选复选框
在一些后台管理系统里面,针对全选,复选框是一个很常见的操作,复选框可以执行多项选择的一种控件,有时,为了方便用户选中所有的复选框,网页界面
itclanCoder
2023/02/26
6.6K0
JS如何实现勾选全部复选框和不全选复选框
odoo wizard界面显示带复选框列表及勾选数据获取
如下图(非实际项目界面截图,仅用于介绍本文主题),打开记录详情页(form视图),点击某个按钮(图中的"选取ffers"按钮),弹出一个向导(wizard)界面,并将详情页中内联tree视图("Offers" Tab页)的列表记录展示到向导界面,且要支持复选框,用于选取目标记录,然执行目标操作。
授客
2023/05/24
5.4K0
odoo wizard界面显示带复选框列表及勾选数据获取
输入URL到页面加载
https://juejin.im/entry/58ce00c5ac502e00589b4bde
tanoak
2018/10/10
1K0
输入URL到页面加载
iOS开发——UITableView勾选效果
如今的APP开发中,UITableView是最常用的控件之一,而UITableView中有个很常见的效果就是勾选效果,这个效果是由UITableViewCell中的accessoryType属性来决定的。
Originalee
2018/08/30
1.7K0
[Selenium+Chrome使用总结]加载Flash、禁用JS脚本、滚动页面至元素、缩放页面
前几周做了个使用Selenium的项目,踩了好多好多好多的Selenium的坑,越来越感觉他作为一个第三方库,对于Chrome的操作实在是有局限。另外,推荐大家一个Selenium之外的操作浏览器的选择:puppeteer(https://github.com/GoogleChrome/puppeteer),是来自谷歌的库。它解决了很多在Selenium里很难解决的问题,比如手机页面截全屏。
Rude3Knife的公众号
2019/08/06
6.6K0
[Selenium+Chrome使用总结]加载Flash、禁用JS脚本、滚动页面至元素、缩放页面
[Selenium+Chrome使用总结]加载Flash/禁用JS脚本/滚动页面至元素/缩放页面
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
蛮三刀酱
2019/09/10
7.7K0
TreeView中节点勾选设置
本文转载:http://www.cnblogs.com/luxiaoxun/p/3288003.html
跟着阿笨一起玩NET
2018/09/18
1.3K0
后台系统设计(上篇:选择)
在单个选项下,存在多组互斥选项,且互斥选项组之间存在一定关系,可以考虑混用分段控件和常规按钮,由于分段控件在视觉上占用更大的面积,故给人在层级上更加置前。
霖酱
2018/10/10
9.9K0
后台系统设计(上篇:选择)
TeXStudio与Bakoma TeX 结合实现实时阅览
相信大家在使用TeXStudio时候,每次修改完毕都要运行一下再能看到PDF界面,这样做十分不方便,因此先给出如下操作办法。
汀丶人工智能
2022/12/21
2.7K0
TeXStudio与Bakoma TeX 结合实现实时阅览
SpringBoot:模块探究之spring-boot-devtools
Spring Boot 使我们能够快速设置和运行服务。为了进一步增强开发体验,Spring 发布了 spring-boot-devtools 工具——作为 Spring Boot-1.3 的一部分
栗筝i
2022/12/24
9290
SpringBoot:模块探究之spring-boot-devtools
TF+ OpenStack部署指南丨利用OpenStack TF配置虚拟网络
成功安装Tungsten Fabric的下一步,是了解在具体的配置场景中使用编排器部署Tungsten Fabric的工作流程。前面讨论了Kubernetes的部署方案,本文则聚焦在OpenStack上的网络配置过程。
Tungsten Fabric
2020/12/23
1.6K0
TF+ OpenStack部署指南丨利用OpenStack TF配置虚拟网络
React Native开发之调试
在做React Native开发时,少不了的需要对React Native程序进行调试。调试程序是每一位开发者的基本功,高效的调试不仅能提高开发效率,也能降低Bug率。 Developer Menu Android模拟器: 可以通过Command⌘ + M 快捷键来快速打开Developer Menu。也可以通过模拟器上的菜单键来打开。 iOS模拟器: 可以通过Command⌘ + D快捷键来快速打开Developer Menu。 在真机上开启Developer Menu: 在真机上你可以通过摇动手机来开启
xiangzhihong
2018/02/06
4K0
React Native开发之调试
React Native程序调试
在做React Native开发时,少不了的需要对React Native程序进行调试。调试程序是每一位开发者的基本功,高效的调试不仅能提高开发效率,也能降低Bug率。 Developer Menu Android模拟器: 可以通过Command⌘ + M 快捷键来快速打开Developer Menu。也可以通过模拟器上的菜单键来打开。 iOS模拟器: 可以通过Command⌘ + D快捷键来快速打开Developer Menu。 在真机上开启Developer Menu: 在真机上你可以通过摇动手机来开启
xiangzhihong
2018/01/26
3.7K0
Chrome设置断点的各种姿势
Chrome设置断点的各种姿势 最近在翻看Chrome devtools的文档,刚看到了关于断点调试这里,感觉发现了新大陆-。- 本文记录一下如何在Chrome上设置断点,以及可以设置哪些断点,并不涉及具体调试相关的操作。 在JavaScript代码中设置断点 刚工作时被leader安利了Chrome浏览器,那时一说到调试,就知道这一个操作 以为在行号上单击一下就是打断点,就是会调试了:) 当然这也是最最基本的打断点的方式了,当然了,相较于 调试全靠alert 已经高端很多了。
贾顺名
2018/04/12
16.4K1
Chrome设置断点的各种姿势
Linux远程管理工具
Linux远程管理服务器多基于 SSH 协议。本节给大家介绍 2 种常见的基于 SSH 协议的远程管理工具,分别是 PuTTY 和 SecureCRT。
芯动大师
2023/10/23
3680
Linux远程管理工具
Spring Boot 集成热部署
首先简单说下什么是热部署。热部署就是在修改程序代码和配置后,运行着的程序能自动监测到修改,实现让系统无需重启的情况下完成字节码或者配置的更新。热部署可以帮我们省去了开发调试时修改代码后经常手动部署应用的时间,能极大地提高开发效率。对于 Java 应用的热部署,Spring Boot 也推出了 Spring Boot DevTools 组件实现,我们就可以在 Spring Boot 程序快速集成热部署功能。
闻人的技术博客
2020/06/03
8440
bootstrap treeview级联勾选的正确姿势
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/78991829
hotqin888
2018/09/11
1.5K0
bootstrap treeview级联勾选的正确姿势
取消这几个默认设置,在Excel里使用Power系列顺心多了!| 实战经验
前段时间,我写了文章《开始用Power BI?别急!这几个选项配置值得注意!| PBI实战》,其中,提到了关于缓存、自动检测数据类型、自动关系、自动日期等设置的调整。
大海Power
2022/11/07
1.6K0
取消这几个默认设置,在Excel里使用Power系列顺心多了!| 实战经验
Axure RP8入门之基本操作篇
格式说明:“Password”表示主要用途;“Input”表示元件类型,一般情况下可省略,当有不同类型的同名元件需要区分或名称不能明确表达用途的时候使用;“01”表示出现多个同名元件时的编号;单词首字母大写的书写格式便于阅读。
胡琦
2021/09/09
5.4K0
Linux和Windows系统常用加固项
上面只是限制了用户从tty登录,而没有限制远程登录,修改sshd文件将实现对远程登陆的限制
没有故事的陈师傅
2020/05/07
3.4K0

相似问题

单击列表项时勾选或取消勾选复选框

21

如果未勾选复选框,则禁用字段

12

单击“别处”,复选框被勾选/取消勾选。

11

如何使用javascript在页面加载时勾选复选框?

313

勾选和取消勾选复选框时,使复选框可见和不可见

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文