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

href导致Angularjs和Twitter Bootstrap意外页面重新加载

秦滨海
2023-03-14
问题内容

我正在研究一个使用Angularjs和Twitter Bootstrap的项目。

Bootstrap使用#来切换组件(例如,弹出框,模式框等):

<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Modal header</h3>
  </div>
  <div class="modal-body">
    <p>One fine body…</p>
  </div>
  <div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>
</div>

问题是当我单击具有href属性的按钮时,它会导致整个页面重新加载,这意味着当前页面中的所有内容都会丢失。 有办法防止这种情况吗?

一些 额外的 信息:

当我将鼠标悬停在按钮上时,URL很奇怪。例如,我当前页面的网址是

localhost:8080/#/account

该按钮的href为

href="#myModal"

我希望看到网址

localhost:8080/#/account#myModal

但是,我看到的是

localhost:8080/#myModal

我不确定这是否与我的问题有关。

提前致谢!

编辑1

我看过 Stewie 谈论的另 一篇 文章。它解释了angularjs中的html5mode和hashbang,但并不能真正解决我的问题。

我尝试将html5mode放进去,当我单击按钮时它仍然重新加载页面


问题答案:

Angular中的hashbang用于路由。看看教程更深入了解它是如何工作在这里。

您还应该看看Angular UI Bootstrap。

常规Boostraprap并不是在考虑Angular的基础上构建的,因此很少有事情与Angular不符。因此,团队决定将Boostrap移植到Angular指令中,从而使您能够完全使用Angular的ng-功能(仅使用常规的Boostrap就无法轻松实现)。

由于路由的工作方式,我认为您将无法执行所需的操作,并且您也不需要这样做。由于您将<a>用作按钮,因此将其设为常规按钮并添加ng-click

<button class="btn btn-primary" ng-click="openDialog()">Open Dialog</button>

这是Angular的方式(以及Angular UI Bootstrap的工作方式)。

最后,在Angular中,此处<a>是一个指令docs,因此,如果要防止默认单击,请离开href=""

<a href="" ng-click="model.$save()">Save</a>


 类似资料:
  • 我想重新加载页面。我该怎么做?

  • 问题内容: 快速的问题,我已经尝试自己弄清楚这一点,但是在试图弄清页面为什么或如何重新加载以及正在/不应该执行其应做的工作时,使用会话变量可能会造成混淆。 在任何(非脚本)情况下,页面重新加载(使用JavaScript,f5,ctrl + f5,浏览器重新加载按钮等)是否会导致表单重新发布? (这与在C#代码中使用IfPost分支有关,例如下面的示例代码): 我只是需要知道在这里期望什么,以便可以

  • 我有一个链接。当用户单击此链接时,页面将被重新加载。我是这样做的。。。。。。 html JS 在控制器中,我使用了javascript,这对我来说似乎很糟糕。我怎么能用angularjs做

  • 我正在尝试在angularjs中注销后重新加载页面。我正在使用ui路由。只有状态正在更改,但不会删除缓存。我尝试了以下场景。使用$窗口时。地方重新加载,浏览器警告警报(是否要重新加载)即将出现。但我不需要警惕。 $状态。go(登录) $窗口。地方重新加载(true) $位置。路径(“/登录名”) 任何人都可以建议如何在更改angularjs中的状态时删除缓存。

  • 问题内容: 我在ng- init上调用一个函数,并且在该页面上单击按钮将新页面推到导航器的pageStack上。在子页面中,我弹出当前页面。现在,当从页面堆栈中删除子页面时,我想重新加载父页面。 这是代码: 的HTML AngularJS 更新资料 一种解决方案是通过使用重新加载应用 问题答案: 您可以使用新的随附新温泉UI 1.3.0 。您可以将其传递给这样的回调: 在这里工作:http : /

  • 我对VueJs和刷新页面有个问题。当我用特定的URL(例如:/tag/1)刷新VueJs应用程序时,出现错误:“Uncattle SyntaxError:Expected token<”。我的服务器是用NodeJs创建的,我使用ExpressJS。我的模板引擎是EJS。我定义了一条路由: 在ExpressJs的文档中,可以使用插件“connect-history-api-fallback”来替换A