AngularJS:具有路由的多个视图而不丢失范围

2024-02-19

我正在尝试实现一个经典的列表/详细信息用户界面。单击列表中的某个项目时,我想显示该项目的编辑表单同时仍然显示列表。我正在尝试解决 Angular 的每页 1 个视图的限制,并决定通过将所有 URL 路由到同一控制器/视图来实现此目的。 (也许这是我问题的根源,我愿意接受替代方案。)

Routing:

$routeProvider
    .when('/list', { templateUrl: '/Partials/Users.html', controller: UserController })
    .when('/edit/:UserId', { templateUrl: '/Partials/Users.html', controller: UserController })
    .otherwise({ redirectTo: '/list' });

视图(/Partials/Users.html):

<!-- List of users -->
<div ng-repeat="user in Users">
    <a href="*/edit/{{ user.Id }}">Edit {{ user.Name }}</a>
</div>

<!-- Edit form -->
<div>
    {{ SelectedUser.Name }}
</div>

控制器:

function UserController($scope, $routeParams) {
    // the model for the list
    $scope.Users = GetUserListFromService();

    // the model for the edit form
    if ($routeParams.UserId != null)
        $scope.SelectedUser = GetUserFromService($routeParams.UserId);
}

问题:

  1. 单击编辑链接时,控制器将使用新范围重新实例化,因此我必须重新初始化用户列表。 (在更复杂的示例中,我可以将用户的输入存储绑定到模型,这也会丢失。)我更愿意保留上一个路由的范围。
  2. 我更喜欢使用单独的控制器(或者,正如许多其他 Angular 开发人员所抱怨的那样,能够拥有多个显示视图!),但这会导致同样的失去范围的问题。

尝试使用 ui-router:http://github.com/angular-ui/ui-router http://github.com/angular-ui/ui-router.

它们具有嵌套视图,并且比角度默认路由更容易状态管理:-)

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

AngularJS:具有路由的多个视图而不丢失范围 的相关文章

随机推荐

  • 在浏览器窗口中更改 PDF 标题

    我有一个 pdf 文件 正在为客户放在网站上 它位于这里 http www optiphysicaltherapy com dev wp content uploads 2014 02 OPTI NewPatientForms pdf ht
  • 如何更改消息框标题? [复制]

    这个问题在这里已经有答案了 如何在asp net中更改此消息框的标题 该标题出现在 IE 中 帮忙 你不能 没有 API 可以执行此操作 默认标题是反网络钓鱼安全功能 如果您希望对警报消息的外观有足够的控制 那么您必须在 DOM 中构建自己
  • CGContextDrawImage 崩溃

    代码如下 void drawLayer CALayer layer inContext CGContextRef ctx CGContextRef context ctx CGContextRetain context CGContextS
  • 应用程序的沙箱虚拟机(概念)

    我想编写一个沙箱虚拟机来执行已编译的程序 我的目标是将该程序与操作系统的其余部分隔离并控制其执行 以便它不会对主机做出任何有害的事情 我假设 执行的程序被编译为可移植可执行格式 并且是机器代码 而不是任何类型的字节代码或 CLR 执行的程序
  • 在 python 中,是否有跨平台的方法来确定哪个进程正在侦听给定端口?

    在linux下 我可以使用lsof i如以下函数所示 def FindProcessUsingPort portnum import os fp os popen lsof i s portnum lines fp readlines fp
  • Android 12 模拟器预览版无连接

    我已经安装了 Android 12 Preview 模拟器 我遇到了很多问题 因为模拟器在启动时崩溃 但在卸载并再次安装并重新启动机器等后 我设法启动它 我现在遇到的问题是互联网连接不起作用 所有其他模拟器都工作正常 我尝试从命令行启动模拟
  • Android:向EditText字段添加小数点,并使其随输入移动

    在我的应用程序中 用户可以在文本字段中输入美元金额 问题是 我需要输入在输入数字时适应最终数字 而不实际输入小数点 解释这一点的最好方法是用一个例子 假设用户从包含以下内容的 EditText 字段开始 用户想要在字段中输入 12 53 即
  • 为 Google App Engine 配置 Jackson

    有什么办法可以配置吗Jackson 配置对象映射器 哪个用于序列化 servlet 响应 Api name rates version v1 title Rates API public class RatesApi static Logg
  • 熊猫,按计数分组并将计数添加到原始数据帧?

    当尝试计算数据框中具有相似 种类 的行时 import pandas as pd items aaa aaa text 1 aaa aaa text 2 aaa aaa text 3 bb bb text 1 bb bb text 2 bb
  • 从 D2006 移植到 XE5 后偶发的访问冲突在 XP 兼容模式下不会发生

    我们有一个在 Delphi 2006 中运行良好的大型应用程序 我们已将其移至 XE5 但经常遇到偶发的访问冲突 我们使用 VCL 表单和许多 DevExpress 以及其他第三方组件 我们正在使用 Windows 7 Profession
  • tess-two 找不到 libpng.so

    我已遵循 tess two 的构建说明Github https github com rmtheis tess two build 我使用 NDK 成功构建了 tess two 并导入了库 我正在尝试运行同一存储库上提供的测试应用程序 但每
  • RTC_WAKEUP 不起作用

    目前我正在开发一个广播接收器应用程序 其中我正在制作一个警报 该警报应该在我们输入秒数后显示一条消息 我使用了 RTC WAKEUP 这意味着它应该在设备打开时显示消息 并且应该打开设备 然后在设备关闭时显示消息 我的问题是 RTC WAK
  • 迁移到Material-UI v5时,如何处理条件类?

    In the 官方迁移指南 https next material ui com guides migration v4 main content 他们给出了以下从 JSS 更改代码的示例 makeStyles 到新的styled mode
  • 单元测试因会话窗口中的“构建失败”而失败,并且没有任何消息提供 Visual Studios 2010 中失败的原因

    我最近在本地计算机上安装了 VS 2010 但似乎无法让 Resharper 5 1 和单元测试正常工作 每当我尝试运行单元测试时 我都会收到 构建失败 测试图标保持灰色 但输出窗口中没有信息 也没有明显的原因 在进行 nant 构建时 单
  • 在向量>上使用push_back [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有点尴尬
  • 如何在 mySQL Server 数据库架构中找到所有填充 100% 空值的列?

    有没有一种 SQL 方法可以找出我的架构中的哪些列完全充满空值 我知道几个表中的某些字段不会被应用程序使用 并且将被删除 但我想看看是否有一种自动化的方法 脚本可以在整个数据库中找到这些字段 以找到代码审查的候选者 可能的删除 如果有必要的
  • Gson 反序列化 Realm 基元列表

    我正在将领域与 gson 一起使用 我有一个模态 其中有一个 int 类型字段列表 Realm 目前不支持基元列表 为了解决这个问题 有一个解决方案 我创建了 RealmInt 类 import io realm RealmObject p
  • 如何防止子元素继承CSS样式

    我有一个 div 元素与一个 p 里面的元素 p div style font size 10pt color red This is my Parent Div p This is my Child Paragraph p My pare
  • 重写和url解码

    似乎有一个网站以错误的方式链接到我的网站 从谷歌网站管理员工具我看到一些 404 错误 domain com file php id 1 404 Not found Date 这个 url 工作正常 但由于浏览器页面解码 真实的 404 u
  • AngularJS:具有路由的多个视图而不丢失范围

    我正在尝试实现一个经典的列表 详细信息用户界面 单击列表中的某个项目时 我想显示该项目的编辑表单同时仍然显示列表 我正在尝试解决 Angular 的每页 1 个视图的限制 并决定通过将所有 URL 路由到同一控制器 视图来实现此目的 也许这