AngularJS 模型

2023-11-24

我正在尝试了解 AngularJS。我很喜欢它,但我似乎忽略了一个核心概念——模型在哪里?

例如,如果我有一个显示多个交易列表的应用程序。一个列表向服务器查询匹配某些条件的一组分页事务,另一个列表使用不同的条件,但可能有一些事务匹配这两个条件并最终出现在两个列表中。现在:

  1. 出现在两个列表中的交易在两个作用域中应该是相同的对象,对吧?这不是数据绑定的一大吸引力吗?一个地方的更新将镜像到另一个地方?

  2. 事务可能具有复杂的行为,抽象原始服务器 API 请求,需要对服务器进行后续查询以收集更多数据,监视自身变化并将其自身标记为脏,所有这些都去哪里了?

  3. 列表本身需要知道交易何时被删除,因此在一个列表中删除的同一交易将从另一个列表中消失。

  4. 我们可能想在某种客户端存储中缓存事务?

那么问题又来了:这一切都去哪儿了?这一切是否都被塞在 $rootScope 中并由控制器控制?委托给某项服务?

这里的任何指示,无论多么模糊,都将不胜感激。


Angular 的特点是它把模型留给你。您不必扩展某些内置对象即可使其工作,它可以是您想要的任何对象。

a) 是的,但就像我说的,这取决于你。如果您愿意,您甚至可以使用 Backbones 模型实现。

b) 可能在你的模型对象中。 Angular 提供了您可以使用的资源服务。您可以在这些资源上定义自己的方法,因此这是一个很好的起点。

c) 你指的是GUI部分还是业务逻辑? Angular 会为您处理 GUI。只需实现从列表中删除事务的函数,Angular 就会为您重新渲染它。

d) 同样,这取决于您是否实现或使用库。 Angular 主要是一个 GUI 框架,对模型/持久层几乎没有什么意见。

对于你的最后一个问题;您可以将大部分逻辑放在服务中。您的 Angular 控制器将被注入它们所需的服务,并通过范围向视图公开功能。您应该尽可能避免将内容添加到根范围,因为它们本质上在您的模板中是全局的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 模型 的相关文章

  • Angularjs 模式的复选框表现得很奇怪

    我有一个有角度的应用程序plunker http plnkr co edit rac8w9g8L0eX8mlXKuVn p preview 当我们单击该按钮时 它会打开一个包含项目列表的模式对话框 其中 2 项是根据复选框表输入中的条件进行
  • Angularjs 手表服务对象

    为什么我无法观看服务中的对象 我有一个简单的变量可以工作 但是一个对象不能工作 http plnkr co edit S4b2g3baS7dwQt3t8XEK p preview http plnkr co edit S4b2g3baS7d
  • 根据用户区域设置过滤字符串列表

    当使用 AngularJS 1 6 处理 JavaScript 项目时 我有一个要过滤的字符串列表 例如 假设我的列表包含 rbol cig e a nido and tubo 当过滤西班牙语字符串时 如果我过滤 u 我会期望两者cig e
  • CORS 在 jquery 中工作正常,但在 angularjs 中不行

    我的服务器端是php mysql 我正在另一个域的 Web 服务中进行 Ajax 调用 其中启用了 的访问控制 var postUrl http logical brains com elance clone test login php
  • Angular UI 模式的范围问题

    我无法理解 使用角度 UI 模式的范围 虽然这里不是很明显 但我已经正确设置了模块和所有内容 据我所知 但这些代码示例尤其是我发现错误的地方 index html 其中重要部分 div class btn group div
  • 如何正确清理来自 AngularJS 控制器的无效输入的表单?

    我有一个 AngularJS 表单 其中包含 除其他字段之外 类型之一url 后者很重要 因为这会强制相应的输入成为有效的 URL 在某些条件下 例如 要关闭具有此类表单的模式对话框 我想以编程方式清除该表单 为此 我实现了方法reset基
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • 用户脚本 - 有没有办法将 jquery 代码注入 angularjs dom?

    所以我正在尝试为一个网站创建用户脚本 我无法更改网站的任何源代码 因为它不是我的 网站到处都使用 AngularJS 控制器 我研究了几天如何做到这一点 但没有成功 所以我尝试注入代码 nav after div test div 当我通过
  • 当共享相同的行和列时,将网格项设置为不重叠

    现在 当两个网格项共享相同的行和列时 它们会相互重叠 div class some grid container div Item 1 div div Item 2 div div 我如何让它们不重叠 当共享相同的行和列时 其行为可能类似于
  • 使用 JS 在 Angular 中创建删除按钮的确认警报

    我有一个带有删除按钮的表单 我想创建一个单击删除按钮时弹出的确认框 删除按钮当前有效 我在 javascript 中尝试了一些方法 但没有成功 我正在使用角度 这是最好的方法吗 另外 有谁知道这方面的任何例子 我还没有找到任何有效的例子 d
  • AngularJS:Array.prototype.find() 在 Chrome 中不起作用

    我遇到一个问题 我的角度代码可以在 Firefox 中工作 但不能在 Chrome 中工作 浏览器控制台打印如下 TypeError undefined is not a function at setSelectedColor http
  • Jhipster 生成器跳过 --skip-server 处的身份验证代码

    为什么当我们使用 skip server 生成项目时 哟 jhipster skip server 部分身份验证丢失 在 AJS A2 上 是吗 每次我需要粘贴部分代码 Angular 上的 AuthServerProvider 或 Ang
  • 消息:函数在 5000 毫秒后超时 - Protractor & CucumberJS

    cucumberjs version 1 2 2 protractor version 4 0 1 Both installed globally via npm 升级到上面的 cucumberJs 版本后 我不断收到此错误 Failure
  • 如何禁用 Angular 数据表中数据的初始排序?

    我正在使用角度数据表 并且只有一列 当我绑定它时 数据按升序排列 而我想按我收到的顺序显示它 有人可以帮忙吗 控制器 var vm this vm dtOptions DTOptionsBuilder newOptions withButt
  • Angular 中有主控制器好吗?

    我不知道这是否是一个好的做法 我在路由配置中定义了一个控制器 但是因为我的HomeCtrl is in ng if他听不到的声明loginSuccess所以我做了MainCtrl它监听loginSuccess并做出适当的反应 这段代码工作得
  • 卸载/销毁 Angular 延迟加载组件

    我的设置与此处找到的帖子类似http ify io lazy loading in angularjs http ify io lazy loading in angularjs 处理 Angular 中我的应用程序的各种组件的延迟加载 我
  • 获得一次性绑定以适用于 ng-if

    这个问题已经被之前问过 https stackoverflow com questions 23969926 angular lazy one time binding for expressions 但我无法让该解决方案发挥作用 所以我想
  • Angular 2 中的变更检测

    我正在将角度 1 和角度 2 集成在一起 因此我有角度 1 控制器和服务以及角度 2 组件 这些对于数据检索和存储来说工作得很好 反之亦然 下面是我的 html 页面 h3 Angular 1 service h3 div div
  • 测试 AngularJs 的 $http.defaults.headers.common 是否设置了特定标头

    所以我对 JavaScript 和 AngularJS 的世界还是个新手 因此我的代码还没有达到应有的水平 但它正在改进 尽管如此 我开始学习并实现一个带有 REST 后端的简单登录页面 提交登录表单后 将返回一个身份验证令牌并将其设置为默
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我

随机推荐

  • 使用 Array.forEach 迭代 getElementsByClassName 的结果

    我想迭代一些 DOM 元素 我这样做 document getElementsByClassName myclass forEach function element index array do stuff 但我收到错误 document
  • 在 Safari 中禁用同源策略

    出于开发目的 我需要在我的计算机上的 Safari Windows 上 中禁用同源策略 在 Chrome 中 这可以通过使用标志启动来完成 disable web security Safari 中是否有等效的标志或隐藏设置 如果你想在Sa
  • 当我的 NodeJS 应用程序在我的计算机上运行时,本地网络上的其他人如何访问它?

    我有一个非常简单的问题 我用NodeJS做了一个网页游戏 我可以在并排打开多个浏览器窗口的情况下自己成功玩它 但是 我想知道其他本地计算机是否也可以访问并与我一起玩游戏 我天真地尝试使用这个网址 my ip address 8000这是行不
  • 在 Ruby 1.8 中将字符串简单转换为 UTF-8

    我知道在 Ruby 1 9 中你可以轻松地重新编码这样的字符串 s s encode UTF 8 Ruby 1 8 中的等效项是什么 它需要什么线路 我见过的所有教程都不必要地复杂 我不明白发生了什么 詹姆斯 爱德华 格雷二世有一个详细帖子
  • CRC16 ISO 13239 实施

    我正在尝试在 C 中实现 Crc16 我已经尝试了许多不同的实现 但大多数都给了我不同的值 这是我已经使用过的一些代码 private static int POLYNOMIAL 0x8408 private static int PRES
  • 无法选择 MKViewAnnotation 两次?

    我在地图上放置了图钉 当我点击它们时 我会调用didSelect 该函数仅在第一次点击该引脚时被调用 之后不会再次在同一引脚上调用该函数 除非我选择另一个引脚然后返回并点击它 对我来说 这听起来像是正在选择引脚 并且didSelect只能在
  • 我应该在哪里放置 Junit @Category 的接口类?

    我想定义项目范围的接口 用于 Category注释 并配置 Maven 在构建整个项目时排除其注释测试 In the 应用项目中有一个测试我想分类 Category Integration class Test public void te
  • Django 无法切换语言环境

    我有文件 locale es LC MESSAGES django mo 和 po 运行 makemessages 和compilemessages 绝对所有消息都已翻译 在settings py中有 USE I18N True LANGU
  • Laravel 中的位置标头

    我正在为我的大学的身份验证系统 Ucam Webauth 使用图书馆 这意味着我必须使用其中一种方法重定向到身份验证服务器 不幸的是 我无法退货Redirect to 因为这个图书馆的架构 图书馆本身使用header Location 但这
  • “kafka.zookeeper.ZooKeeperClientTimeoutException:等待连接超时”仅在列出主题期间

    我发现了一些主题相似但上下文不同的问题 我可以连接以创建主题 但无法列出主题 因为我收到了下面提到的错误 据我所知 人们在我时面临基本连接问题 我只是为了列出主题列表 如果重要的话 这是我的docker compose yml versio
  • IntelliJ switch 语句使用字符串错误:use -source 7

    我正在尝试使用 IntelliJ 在 Mac OS X 上 编译我使用 Eclipse 编写的一些代码 我尝试运行以下代码 switch category case below 20 below20 break case 20 to 29
  • Linux 中的 ps 实用程序(procps),如何检查使用哪个 CPU

    这是关于procps包 实用程序ps对于Linux 它可以打印每个进程 线程 最后使用的CPU数量吗 更新 不是 CPU 时间 10 秒 而是 CPU 编号 CPU0 CPU5 CPU123 ps 1 手册页说您可以使用psr field
  • 使用 awk 从不同文件中减去列

    我有两个文件夹 A1 和 A2 这两个文件夹中的文件名称和文件数量相同 每个文件有 15 列 文件夹 A1 中每个文件的第 6 列需要从文件夹 A2 中每个文件的第 6 列作为基底 我想将每个文件的第 2 列和第 6 列 相减后 打印到具有
  • 获取哈希符号后的请求部分

    我的网站有 AJAX 支持的搜索 它使用深度链接 当用户点击链接时 http example com articles tags Mac 20OS review 标签 Mac OS 和 评论 应该已经在搜索表单中选择 并且与 Mac OS
  • iOS 7 ANCS:发现主要 ANCS 服务 UUID

    在 iOS7 下 主要的 ANCS 服务是否需要不断进行广告宣传 或者是否需要在模糊设置中启用 使用自定义 CBPeripheralManager 使用 Apple 指定的服务和特征 UUID 实现 以便潜在的通知消费者成功发现它并订阅 A
  • HTML + CSS:没有句点的有序列表?

    我认为这个问题的答案是否定的 但是有人知道一种 HTML CSS 方法来创建一个数字后面没有句点的有序列表吗 或者 指定分隔符 理想情况下 我不想为每个数字使用不同的类进行列表样式图像 但这就是我到目前为止所能想到的 这看起来非常不语义 I
  • 如何确定Python中嵌套数据结构的类型?

    我目前正在将一些 Python 翻译成 F 具体来说神经网络和深度学习 为了确保数据结构正确转换 需要 Python 中嵌套类型的详细信息 这type 函数适用于简单类型 但不适用于嵌套类型 例如在 Python 中 gt data 1 2
  • 创建缓冲区时“尚未创建缓冲区”

    我有 我认为是 一个简单的 JFrame BufferStrategy 它是这样创建的 Buffer container createBufferStrategy 2 strategy container getBufferStrategy
  • 代理对是如何计算的?

    如果 unicode 代码点使用 17 位或更多 则如何计算代理对 Unicode 代码点是范围从 0x000000 到 0x10FFFF 的标 量值 因此它们是 21 位整数 而不是 17 位 代理对是 UTF 16 形式的一种机制 这将
  • AngularJS 模型

    我正在尝试了解 AngularJS 我很喜欢它 但我似乎忽略了一个核心概念 模型在哪里 例如 如果我有一个显示多个交易列表的应用程序 一个列表向服务器查询匹配某些条件的一组分页事务 另一个列表使用不同的条件 但可能有一些事务匹配这两个条件并