将 cmsfn 值传递给范围变量 angularjs

pass cmsfn value to a scope variable angularjs

我正在尝试将一个变量从 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> 

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

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

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

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

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

${rootPage.@name}

您可以在 this page

的底部找到内容映射的其他特殊属性列表

现在,最后关于 angular 部分,模板中只有 angular 表达式,"print statement" 如果需要,它不会分配变量。您需要在 someController 控制器本身中使用 $scope.myVar=... 进行分配。这意味着.js文件本身需要是freemarker模板。