我正在将KnockoutJS与SammyJS一起用于客户端模板和Django框架
在我的应用程序的顶部栏中,有一个用于用户注销的下拉菜单。这是它的代码-
<div class="pull-right user">
<a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">
<p><span id="topbar_first_name"></span></p>
<b class="caret"></b>
<ul class="dropdown-menu" role="menu">
<li><a tabindex="-1" href="{% url 'user:logout' %}">Logout</a></li>
</ul>
</a>
</div>
在我开始使用SammyJS之前,注销链接已经起作用。但是现在,只有浏览器的URL更改为'
http://localhost:8000/user/logout/
'(这是链接的正确URL)。只有在重新加载页面之后,用户才可以注销。在我的JS文件中,这是Sammy的唯一功能-
Sammy(function() {
this.get('#:folder', function() {
self.chosenFolderId(this.params.folder);
$.get('/tasks/get', { folder: this.params.folder }, function(data) {
self.tasks_list(data);
});
});
this.get('', function() {
this.app.runRoute('get', '#Active')
});
}).run();
我尝试将“ href”更改为外部链接(例如“ www.stackoverflow.com”)。此后,浏览器的URL更改为“
http://localhost:8000/www.stackoverflow.com
”,但它不起作用。如何消除这个问题? 最佳答案
该行:
this.get('', function() {
this.app.runRoute('get', '#Active')
});
弄乱了您的链接。这告诉SammyJS拦截所有链接。您要达到什么目的?我会做的是:
Sammy(function() {
this.get('#:folder', function() {
self.chosenFolderId(this.params.folder);
$.get('/tasks/get', { folder: this.params.folder }, function(data) {
self.tasks_list(data);
});
});
}).run('#Active');
关于javascript - SammyJS无法与Django一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16918654/