JavaScript:在另一个属性中使用对象的属性?

时间:2014-09-13 17:55:23

标签: javascript gruntjs

在我的Grunt构建脚本中,我有一个包含大部分路径的对象,如下所示:

var project_config = {
    project_paths: {
        build: 'assets/css',
        docs: 'docs',
        src_scss: 'src/scss/**/*.scss',
        yaml: grunt.file.readYAML('docs/config.yml')
    }
};

如您所见,docs可以在' yaml'中再次找到,因为它只是一条路径。

如何在docs中使用yaml

这样做并不起作用,可能是因为该对象无法自行访问:

var project_config = {
    project_paths: {
        build: 'assets/css',
        docs: 'docs',
        src_scss: 'src/scss/**/*.scss',
        yaml: grunt.file.readYAML(docs+'/config.yml')
    }
};

使用Grunt模板也不起作用:yaml: grunt.file.readYAML('<%= project_paths.docs %>/config.yml')

1 个答案:

答案 0 :(得分:1)

当你想要访问路径时,Grunt还没有处理配置对象。您可以手动处理模板字符串&#34;#34;与grunt.template.process

var project_config = {
    project_paths: {
        build: 'assets/css',
        docs: 'docs',
        src_scss: 'src/scss/**/*.scss'
    }
};
project_config.project_paths.yaml = grunt.file.readYAML(
    grunt.template.process(
        '<%= project_paths.docs %>/config.yml',
        {data: project_config}
    )
);