2

我使用Python Web 框架Pyramid编写了一个 Web 应用程序。

在我的 Web 应用程序的一页中,我想实现对话框。我正在尝试使用AngularUI Bootstrap学习 AngularJS来实现这一点(这里是使用 AngularUI 的对话框示例)。

我的页面将显示总共 7 个对话框。这些对话框将显示文本和图像,并接收和验证输入。对话流不是线性的;有条件对话框和多个执行分支。

请看这个显示 AngularUI 引导对话框的例子example.js:5-21配置对话框显示选项。该参数template包含要显示的 HTML:

template:  t, // OR: templateUrl: 'path/to/view.html',

其中,在示例中,var t包含一些静态示例标记:

var t = '<div class="modal-header">'+
        '<h3>This is the title</h3>'+
        ...



现在,在 Pyramid 中,URL 不直接映射到文件或文件夹;相反,将 URL与注册的路由进行比较。因此,例如, request 是没有意义的http://site.com/path/to/view.html。相反,您将编码:

config.add_route('my_route', '/my_feature')

@view_config(route_name='my_route', renderer='/path/to/view.html')

如果view.html您调用http://site.com/my_feature.

如何将金字塔视图用作templateUrl

因为 Pyramid 将 URL 抽象为视图,所以我无法提供templateUrl静态 HTML 文件(例如abc.html)。我提供的任何 URL 都会通过 Pyramid 的路由系统。

我已经尝试templateUrl成功地提供静态 HTML 文件。但是任何 Pyramid 路由的 URL 都会失败,并且不会显示对话框。

解决方案是什么?


解决方案

我不小心使用templatetemplateUrl.

确保它说templateUrl: '/your-pyramid-view'而不是template: '/your-pyramid-view'.

4

2 回答 2

1

您应该能够使用静态视图提供静态 html 文件:

config.add_static_view(name='partials', path='yourpythonpackage:partials')

如果 abc.html 在 yourpythonpackage/partials 中,那么您templateUrl可以设置为 /partials/abc.html。

于 2013-08-10T20:12:00.997 回答
1

而且,不要忘记

config.add_renderer('.html', 'pyramid.chameleon_zpt.renderer_factory')

直接呈现您的前端 inedx.html,而不是金字塔索引模板。

于 2013-08-13T09:29:03.123 回答