锚标记中的hash(#)之后的文件夹是什么意思?

时间:2016-07-18 11:24:35

标签: javascript html angularjs href

this angular tutorial的“组件模板”部分中,他们使用以下代码:

...
<ul class="phones">
  <li ng-repeat="phone in $ctrl.phones | filter:$ctrl.query | orderBy:$ctrl.orderProp" class="thumbnail">
    <a href="#/phones/{{phone.id}}" class="thumb">
      <img ng-src="{{phone.imageUrl}}" alt="{{phone.name}}" />
    </a>
    <a href="#/phones/{{phone.id}}">{{phone.name}}</a>
    <p>{{phone.snippet}}</p>
  </li>
</ul>
...

在锚标记中,他们使用href "#/phones/{{phone.id}}"的以下值。据我所知,href="#"会在点击时跳到页面顶部。 href="#mydiv"会跳转到ID为mydiv的元素。

我从未见过href="#/folder1/myimg.jpg"之类的东西。它等同于href="/folder1/myimg.jpg"吗?

2 个答案:

答案 0 :(得分:1)

放#&#34;#&#34;符号作为某事物的href意味着它不指向不同的URL,而是指向同一页面上的另一个id或名称标签。例如:

<a href="#bottomOfPage">Click to go to the bottom of the page</a>
blah blah
blah blah
...
<a id="bottomOfPage"></a>

但是,如果没有身份证或姓名,那么它就会出现在哪里。&#34;

了解更多信息,你可以看到...... What is href="#" and why is it used?

但是在angularJS中,它用于路由请求......因为angularJS为构建Single Page Application提供了非常好的支持..#之后的参数用于找出要呈现的正确页面....

这是一个很好的example ..但你需要时间深入了解它。

答案 1 :(得分:0)

似乎所有锚定事件都会被javascript中断,并且可能会使用 ajax 在后台加载页面,浏览器的地址行也会更改,但浏览器不会重新加载页面。在HTML4中,它无法在不重新加载页面的情况下更改地址行。所以这是一种解决方法:

  1. 指定js应该加载哪个页面。
  2. 让用户以后能够引用特定页面或共享它。