JavaScript:在另一个属性中使用对象的属性?
问题描述:
在我咕噜构建脚本我有持有我的大部分路径,像这样的对象:JavaScript:在另一个属性中使用对象的属性?
var project_config = {
project_paths: {
build: 'assets/css',
docs: 'docs',
src_scss: 'src/scss/**/*.scss',
yaml: grunt.file.readYAML('docs/config.yml')
}
};
正如你所看到的,docs
可以再次在“YAML”中找到,因为它只是一个路径。
如何在yaml
中使用docs
?
做它像这样没有工作,可能是因为该对象不能访问自己:
使用咕噜的模板也没有工作:yaml: grunt.file.readYAML('<%= project_paths.docs %>/config.yml')
答
在您需要的时刻要访问路径,Grunt尚未处理配置对象。您可以处理模板字符串 “手动” 与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}
)
);
+0
谢谢,没有找到这个功能! – Sven 2014-09-13 18:58:52
你尝试''/config.yml''?假设'project_config'是grunt配置对象。 – 2014-09-13 17:57:07
@FelixKling Woops是的!对不起,这只是我的问题中的一个错字。现在将编辑。 – Sven 2014-09-13 17:58:35
文字*中的JavaScript属性不能直接在所述文字内使用*。 (使用延迟评估的形式并不算作“直接”;有可能一些特别的东西与咕噜,否则这就是问题的答案。) – user2864740 2014-09-13 18:00:01