3

我有几个页面共享一个布局。我正在添加一些将使用 Angular 的新页面。我正在尝试找出如何设置模板,以便在子页面中添加到html元素属性 a ng-app='xyz'

例如

_layout.gsp

<html lang="en"  >

很想只做 child.gsp -

<html ng-app='angularApp'>
<meta name="layout" content="layout">

但是obv,那是行不通的。有什么简单的方法可以实现这一目标吗?

有没有办法使用内容模式?我试过了...

//child.gsp
<meta name="angularApp" content="angularApp"/>

//layout.gsp
<html lang="en" <%  meta(name: 'angularApp')? "ng-app='${meta(name: 'angularApp')}'":"" %> >

但它只是没有任何结果......

4

2 回答 2

9

在您的视图正在使用的 _layout.gsp 中:

<html lang="en" ${pageProperty(name:'page.ngapp')} > ...... </html>

然后,您将能够更改使用先前布局的后续 gsp 视图中的值:

<content tag="ngapp">ng-app='angularApp'</content>

编辑:在我使用的较新版本的 grails(2.4.4)中,我必须指定不带引号的属性 - 值组合:

<content tag="ngapp">ng-app=angularApp</content>

最后,渲染的视图将具有您想要的任何内容:

<html lang="en" ng-app="angularApp" > ..... </html>
于 2013-06-17T15:56:03.770 回答
1
//layout.gsp
<html lang="en" ng-app="angularApp">

//child.gsp
<meta name="layout" content="layout"/>

Angular 应用程序将被注入到主(父)布局中,并在需要时可用于所有子视图。ng-view如果您对单页应用程序感兴趣,也可以使用。

于 2013-06-17T18:37:51.390 回答