小编use*_*809的帖子

href导致使用Angularjs和Twitter Bootstrap进行意外的页面重新加载

我正在开发一个使用Angularjs和Twitter Bootstrap的项目.

Bootstrap使用#来切换popover,modal等组件,例如:

<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>
Run Code Online (Sandbox Code Playgroud)

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

一些额外的信息:

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

localhost:8080/#/account
Run Code Online (Sandbox Code Playgroud)

按钮的href是

href="#myModal"
Run Code Online (Sandbox Code Playgroud)

我希望看到网址

localhost:8080/#/account#myModal
Run Code Online (Sandbox Code Playgroud)

但是,我看到的是

localhost:8080/#myModal
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

编辑1

我看过Stewie谈到的另一篇文章.它解释了angularjs中的html5mode和hashbang,但它并没有真正解决我的问题.

我尝试放入html5mode,当我点击按钮时它仍然重新加载页面

html javascript href twitter-bootstrap angularjs

27
推荐指数
3
解决办法
2万
查看次数

什么类型的字符串使用前缀\ x以及如何读取它

我有这样的字符串

"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL"
Run Code Online (Sandbox Code Playgroud)

当我把它放在浏览器控制台时,它会自动成为其他东西:

"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL"
"'ö,úìHL"
Run Code Online (Sandbox Code Playgroud)

如果我做chatAt(x)了这个字符串,我得到:

"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL".charAt(0)
"'"
"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL".charAt(1)
""
"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL".charAt(2)
"ö"
Run Code Online (Sandbox Code Playgroud)

这就是我想要的.

现在我想实现一个Java程序,它以与浏览器相同的方式读取字符串.

问题是,Java无法识别此字符串的编码方式.相反,它将其视为普通字符串:

"\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".charAt(0) == '\'
"\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".charAt(1) == 'x'
"\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".charAt(2) == '2'
Run Code Online (Sandbox Code Playgroud)

这个字符串编码的编码类型是什么?什么样的编码使用前缀\x?有没有办法正确读取它(获得与浏览器相同的结果)?

更新:我找到了一个解决方案 - >我想这不是最好的,但它对我有用:

StringEscapeUtils.unescapeJava("\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".replace("\\x", "\\u00"))
Run Code Online (Sandbox Code Playgroud)

谢谢大家的回复:)特别是Ricardo Cacheira

谢谢

java string unicode encoding

6
推荐指数
1
解决办法
6655
查看次数