首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SilverStripe 3.3 -添加CMS字段作为JavaScript变量

问SilverStripe 3.3 -添加CMS字段作为JavaScript变量
EN

Stack Overflow用户
提问于 2016-03-07 15:52:14
回答 1查看 250关注 0票数 2

我正在为一个SilverStripe项目尝试一些不同的东西:我需要找到一种方法来获取CMS中的字段,并将它们放入JavaScript变量中,以便在JavaScript文件中使用。

首先,我在Page.php中有一个标题CMS字段。

代码语言:javascript
复制
private static $db = array(
    'Header' => 'HTMLText'
);

public function getCMSFields() {
    $fields = parent::getCMSFields();

    $fields->addFieldToTab('Root.Main', new HTMLEditorField('Header', 'Header'));

    return $fields;
}

我希望将JavaScript文件中的字段引用为变量:

代码语言:javascript
复制
       {
            id: 'Text-Intro',
            type: 'text',
            rect: ['251px', '250px','641px','71px','auto', 'auto'],
            text: [Header variable needs to go here],
            align: "left",
            font: ['Arial, Helvetica, sans-serif', 25, "rgba(0,0,0,1.00)", "500", "none", "normal"]
        },

我尝试使用Requirements::javascriptTemplate()函数,但是在detail-page_edge.js文件中无法识别该变量:

代码语言:javascript
复制
public function init() {
    parent::init();

    Requirements::javascriptTemplate('/themes/simple/javascript/detail-page_edge.js', array(
        'Header' => $this->Header
    ));
}

一定是遗漏了什么,还是这已经过时了?我以前从未在SilverStripe上尝试过这个。不过,考虑到这个项目是如何设置的,我没有太多选择。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-07 20:31:52

您可以使用SilverStripe模板语法进行简单的变量替换。因此,您的JS文件应该是:

代码语言:javascript
复制
// ... plain JS code
text: '$Header',
// ... more JS code

请注意,您不能使用更复杂的模板语法,例如<% loop … %>或<% if … %>,因为javascriptTemplate只会执行变量替换。

如果您需要完整的模板特性,您可以呈现一个.ss模板文件来字符串并使用Requirements::customScript输出它。我觉得你不应该这么做,尽管…甚至通过javascriptTemplate处理JS文件似乎也是关闭的。我宁愿在您的常规标记中使用HTML数据属性(例如。( .ss模板),并以获取所需属性并构建标记的方式编写JavaScript。

另外:确保文件的路径正确。而不是写绝对路径:

代码语言:javascript
复制
'/themes/simple/javascript/detail-page_edge.js'

我建议你使用以下方法:

代码语言:javascript
复制
$this->ThemeDir() . '/javascript/detail-page_edge.js'
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35848089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档