我在金字塔中有这个delete
视图,我使用的是mako模板和knockout js。你知道吗
config.add_route('delete', '/delete/{id}')
这是我到金字塔中delete
视图的路径。我想将模板中的一些按钮绑定到此url,以便它调用delete
视图。你知道吗
我试过这样做:
<script>
this.delete = function(detail){
$.post(
"${request.route_url('delete', id=detail['id'])}",
{'action' : 'delete', 'id' : detail.id()},
function(response){
//remove the currently selected detail from the array
self.details.remove(detail);
}
);
};
但是,这将返回以下回溯:
TypeError: 'Undefined' object has no attribute '__getitem__'
delete
视图已将location
设置为当前页。那么有没有一种不刷新当前页面的方法呢?你知道吗
好吧,我知道答案了。我给未来的谷歌用户加上这个。你知道吗
值必须在敲除模型中作为
ko.observable('<some_value>')
进行观察,以便在不刷新的情况下进行更新。你知道吗链接应该是
delete/<some_id>
。因此,将json对象中的字符串"delete/"
和id
连接为:var delete_link = "delete/".concat(detail.id);
然后使用delete函数,如下所示:
${request.route_url('delete', id=detail['id'])}
是python/mako代码,不是javascript代码。如果您的ID是99,那么它最终应该以delete/99
的形式呈现给html。你知道吗在python中出现TypeError是因为在名为
detail
的模板命名空间中没有对象/变量。也许这是因为当你把参数传递给mako的时候,你把它叫做record或者别的什么?你没有提供足够的信息让我告诉你。。。你知道吗如果传入mako
detail={id:99}
,那么${request.route_url('delete', id=detail['id'])}
就可以了。如果细节是一个对象,那么detail.id
更合适。你知道吗不过,更进一步说,您最好像这样在mako中定义一个javascript对象(假设我已经将一个对象作为变量'mako_object'传递给了mako)
因此html看起来像
相关问题 更多 >
编程相关推荐