首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >batman.js数据路由将字符添加到url

batman.js数据路由将字符添加到url
EN

Stack Overflow用户
提问于 2012-05-25 07:57:48
回答 1查看 971关注 0票数 1

我有一个html模板做这件事。

代码语言:javascript
复制
<ul id="things">
  <li data-foreach-thing="Thing.all" data-mixin="animation">
    <a data-route="routes.things[thing].new" data-bind="thing.id"></a>
  </li>
</ul>

data-route属性返回的url如下所示:

代码语言:javascript
复制
http://localhost:3000/#!/things/new

我不知道它为什么要添加#!

我使用的是batman.js 0.9和rails 3.1

任何帮助解决这一问题的人都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-25 23:58:00

下面是对hash bang urls hash bang urls的一个很好的描述。这对于蝙蝠侠来说是正常的(几乎所有的javascript框架都是这样做的)。您可以启用"pushstate:true“,这将禁用它(但是,如果您使用的是传统浏览器,它将退回到hash bang )。

关于您的batman.js视图没有被呈现的问题,我遇到了类似的问题。我在我的chrome控制台中没有错误,但是视图没有被渲染。您需要确保您的视图具有要附加到的数据产出属性。

例如:

代码语言:javascript
复制
<div id="container" data-yield="main">
</div>

摘自batman.js github

现在,当您导航到/#!/ faq /what is-art时,调度程序会使用{questionID:"what-is-art"}运行此常见问题解答操作。它还隐式调用@render,默认情况下将在/views/app/faq.html中查找视图。视图在页面的主内容容器中呈现,该容器通过在布局的HTML中的某些标记上设置data-yield=" main“来指定。您可以通过在操作中调用@render false来阻止这种隐式呈现。

您是否正在尝试显示指向该事物的show操作的链接?如果是这样的话,它应该是这样的:

代码语言:javascript
复制
<ul id="things">
  <li data-foreach-thing="Thing.all" data-mixin="animation">
    <a data-route="routes.things[thing]" data-bind="thing.id"></a>
  </li>
</ul>

下面是我使用的一些代码的示例( data- attribute的顺序并不重要):

代码语言:javascript
复制
  <div data-foreach-section="sections" data-mixin="animation">
    <a data-bind="section.SectionId" data-route="routes.sections[section]"></a>
    <p data-bind="section.Name"></p>
  </div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10746857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档