将cmsfn值传递给范围变量angularjs

时间:2017-07-24 19:04:16

标签: angularjs freemarker magnolia

我试图将变量传递给cmsfn的angularjs。有没有人设法做到了?

    <div ng-controller="someController">
        [#assign currentNode = cmsfn.asJCRNode(content)]
        [#assign rootPageNode = cmsfn.root(currentNode, "mgnl:page")!]
       <div style="display: none">{{myVar='${rootPageNode}'}}</div>
    </div> 

在上面的代码中,当我尝试在角度中使用myVar时,其值为空。

1 个答案:

答案 0 :(得分:1)

首先,将您的FM代码缩减为单行:

 [#assign rootPage = cmsfn.root(content, "mgnl:page")!]

这样,您获得的内容仍然是ContentMap,而不是Node,这更容易在模板中进行操作。

其次,获取页面的名称(如果这是你想要的):

${rootPage.@name}

您可以在this page

的底部找到内容地图的其他特殊属性列表

现在,最后关于角度部分,模板中的内容只是角度表达式,&#34; print statement&#34;如果你愿意,那将不会分配变量。您需要使用$scope.myVar=...控制器本身中的someController进行分配。这意味着.js文件本身需要是自由标记模板。