我有一个html模板做这件事。
<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如下所示:
http://localhost:3000/#!/things/new我不知道它为什么要添加#!
我使用的是batman.js 0.9和rails 3.1
任何帮助解决这一问题的人都将不胜感激,谢谢。
发布于 2012-05-25 23:58:00
下面是对hash bang urls hash bang urls的一个很好的描述。这对于蝙蝠侠来说是正常的(几乎所有的javascript框架都是这样做的)。您可以启用"pushstate:true“,这将禁用它(但是,如果您使用的是传统浏览器,它将退回到hash bang )。
关于您的batman.js视图没有被呈现的问题,我遇到了类似的问题。我在我的chrome控制台中没有错误,但是视图没有被渲染。您需要确保您的视图具有要附加到的数据产出属性。
例如:
<div id="container" data-yield="main">
</div>现在,当您导航到/#!/ faq /what is-art时,调度程序会使用{questionID:"what-is-art"}运行此常见问题解答操作。它还隐式调用@render,默认情况下将在/views/app/faq.html中查找视图。视图在页面的主内容容器中呈现,该容器通过在布局的HTML中的某些标记上设置data-yield=" main“来指定。您可以通过在操作中调用@render false来阻止这种隐式呈现。
您是否正在尝试显示指向该事物的show操作的链接?如果是这样的话,它应该是这样的:
<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的顺序并不重要):
<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>https://stackoverflow.com/questions/10746857
复制相似问题