当前位置: 首页 > 面试题库 >

在Angular JS中更新URL而不重新渲染视图

尉迟俊能
2023-03-14
问题内容

我正在AngularJS中构建仪表板系统,但遇到通过设置URL的问题 $location.path

在我们的仪表板中,我们有一堆小部件。单击它们时,每个视图都会显示一个更大的最大化视图。我们正在尝试设置深层链接,以允许用户使用最大化的小部件链接到仪表板。

目前,我们有2条路线看起来像/dashboard/:dashboardId/dashboard/:dashboardId/:maximizedWidgetId

当用户最大化窗口小部件时,我们使用来更新url
$location.path,但这会导致视图重新呈现。由于我们拥有所有数据,因此我们不想重新加载整个视图,我们只想更新URL。有没有一种方法可以设置url而不会导致视图重新呈现?

HTML5Mode设置为true


问题答案:

实际上,每次更改URL时都会呈现一个视图。这就是$
routeProvider在Angular中的工作方式,但是您可以将其maximizeWidgetId作为不会重新渲染视图的querystring
传递。

App.config(function($routeProvider) {
  $routeProvider.when('/dashboard/:dashboardId', {reloadOnSearch: false});
});

单击窗口小部件以最大化时:

<a href="#/dashboard/1?maximizeWidgetId=1">Maximum This Widget</a>
or
$location.search('maximizeWidgetId', 1);

地址栏中的网址将更改为 http://app.com/dashboard/1?maximizeWidgetId=1

您甚至可以查看URL中的搜索发生了什么变化(从一个小部件到另一个小部件)

$scope.$on('$routeUpdate', function(scope, next, current) {
   // Minimize the current widget and maximize the new one
});


 类似资料:
  • 我在一个应用程序的前端原型上工作,该应用程序具有给定的JS、React和CoreUI4 React技术栈。我来自Python背景,在网络开发和我给定的技术堆栈方面没有太多经验。当我不得不开始使用钩子时,这一点变得很明显。 问题 我真的不明白为什么它不更新我的和/或不渲染。我需要一个条件渲染,我也使用。 我试图: 从我的主应用程序中传递一个更大的状态,一旦我启动条件逻辑(挂钩规则)就无法工作。 当我

  • 我正在尝试获得一个h:textInput以在更改时重播,我已经用a4j:ajax和f:ajax进行了尝试。 使用a4j:ajax时: 这在面板第一次更新后第一次起作用,它停止更新modell,并且监听器也没有被调用。但是,会触发渲染,从而显示旧值。 现在,当我用f:ajax替换a4j:ajax时,我得到一条错误消息,即在xyzInput中找不到id xyzPG。 当我尝试将重新渲染限制为input

  • 问题内容: 我创建了一个生成Twitter按钮的指令。由于这些按钮上的作用域变量可能会更改,因此我需要在按钮发生时重新构建它。目前,我正在使用jQuery 链接元素并重建按钮。 有没有办法让指令完全重新呈现模板呢? 问题答案: 这是一个可重用的指令,您可以使用它在发送事件时重建被包含的内容: 这是一个jsFiddle演示其工作原理:http : //jsfiddle.net/robianmcd/Z

  • 我对react还比较陌生,我一直在分解一个web应用程序,并用react组件替换部分。我现在正在开发一个组件,其中包含我创建的几个不同组件。 在新组件中,我在componentDidMount函数中进行API调用,并创建子组件。乍一看,一切看起来都很完美,但当我们在其中一个子组件中进行状态更改,然后在父组件中进行更改时,子组件将其状态重置为更改之前的状态。 我知道发生了什么,州政府没有被传递给家长

  • 问题内容: 我已经阅读了有关此问题的主题,例如:[\AngularJS中未更新视图,\但我仍然不明白如何在我的简单示例中应用它。 我有这个功能: 当代码中的其他地方更新时(用户单击,交互,发送XHR请求时),它不会更新我的视图。我知道我需要使用$apply做些事情,但我不知道在哪里以及如何做。 有人可以向我解释如何针对这个简单用例解决此问题吗? 我的模型看起来像这样(如果这个问题是必要的)-它里面

  • 问题内容: 我有一个Angular SPA,它根据一些餐厅数据的不同部分提供了各种推荐列表和位置的Google Map(请参阅m.amsterdamfoodie.nl)。我希望每个列表都有自己的URL。为了让Google抓取不同的列表,我将标签用于offcanvas导航。 目前,标签会导致视图刷新,这在地图上非常明显。 我可以防止使用和(请参见下面的代码段),但是随后我需要实现一种更新浏览器URL