Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我在Mustache中获取模板文件名而不是模板内容_Javascript_Node.js_Templates_Mustache_Hogan.js - Fatal编程技术网

Javascript 为什么我在Mustache中获取模板文件名而不是模板内容

Javascript 为什么我在Mustache中获取模板文件名而不是模板内容,javascript,node.js,templates,mustache,hogan.js,Javascript,Node.js,Templates,Mustache,Hogan.js,我留了胡子 这个问题与我们的关系不大 我让所有其他的东西都工作了,除了部分 我试着去做 base.mustache: {{testVar}} <h2>Names</h2> {{#names}} {{> user}} {{/names}} user.mustache: <strong>{{name}}</strong> var partialsDir = __dirname + '/views/partials' , j

我留了胡子

这个问题与我们的关系不大

我让所有其他的东西都工作了,除了部分

我试着去做

base.mustache:
{{testVar}}
<h2>Names</h2>
{{#names}}
  {{> user}}
{{/names}}

user.mustache:
<strong>{{name}}</strong>
var partialsDir = __dirname + '/views/partials'
        , jsDir = __dirname + '/public/js/compiled';

var hogan = require('hogan.js')
        , path = require('path')
        , join = path.join

        , fs = require('fs')
        , onModify
        , relations = {}
        , watch;

onModify = function (filename)
{
    console.log('Changed', filename);
    if (relations[filename])
    {
        filename = relations[filename];
    }
    console.log('Which relate on', filename);

    var path, contents;

    path = join(partialsDir, filename);
    try
    {
        if (!filename.match(/\.mustache/) || !fs.statSync(path).isFile())
        {
            return;
        }
    }
    catch( err )
    {
        console.log( "Failed to stat file " + path + " - skipping");
        return;
    }

    contents = fs.readFileSync(path).toString();
    var templateName = filename.replace(/.mustache$/, '');
    // TODO: catch compiler exception..
    var compiledTemplate =
            templateName + " = new Hogan.Template("
                    + hogan.compile(contents, {asString: true}) + ");";

    var jsFilename = filename.replace(/mustache$/, 'js');
    fs.writeFileSync(join(jsDir, jsFilename), compiledTemplate );
}

watch = function (filename)
{
    if (relations[filename])
    {
        return;
    }

    var path;
    if (filename.charAt(0) == '/')
    {
        path = filename;
    }
    else
    {
        path = join(partialsDir, filename);
    }

//    fs.watch(path, function (event, f)
    fs.watchFile(path, function (event, f)
    {
        console.log('event is: ' + event);
        if( !f ) // fs.watch doesn't work on all platforms..
        {
            // fall back to just reprocessing all in dir
            fs.readdirSync(path).forEach(onModify);
        }
        else
        {
            onModify(f);
        }
    });
}

fs.readdirSync(partialsDir).forEach(onModify);
watch(partialsDir);


function getPartials(partials, dir)
{
    var baseDir = __dirname + '/views/';
    var files = fs.readdirSync(dir);
    for (var i in files)
    {
        if (files[i].match(/\.mustache/) && fs.statSync(join(dir, files[i])).isFile())
        {
            partials[files[i].replace(/.mustache$/, '')] =
                join(dir, files[i]).replace(baseDir, '');
        }
    }
    return partials;
}
var partials = {};
partials = getPartials(partials, partialsDir);
exports.partials = getPartials(partials, join(partialsDir, '..'));