0

私は流星に慣れていないので、これらのファイルを /client/template ディレクトリに入れ始めたときに myTemplate.helper が想定される出力をレンダリングしないのはなぜだろうかと思っています。これらは次のファイルです。

/クライアント/テンプレート/body.html:

<body>
    <div class="row">
        <div class="col-xs-12">
            <div class="list-group">
            {{#each projects}}
                {{> projectList}}
            {{/each}}
            </div>
        </div>
    </div>
</body>

/クライアント/テンプレート/body.js:

Project = new Mongo.Collection("project");

if (Meteor.isClient) {

Template.body.helpers({
    projects: function(){
        var projects = Project.find({});

        return projects;
    }
});

};

/クライアント/テンプレート/templates.html:

<template name="projectList">
<a href="#" id="{{id}}" class="list-group-item {{#if active}} active {{/if}}">
    {{name}}
    <i class="glyphicon glyphicon-trash pull-right del"></i>
</a>
</template>

ただし、body.html と body.js をルート/ディレクトリに配置すると、適切に出力がレンダリングされます。

4

2 に答える 2

1

私は問題が何であるかを知っていると思います。

Project = new Mongo.Collection("project");

body.js を client フォルダーに移動すると、クライアントとサーバーの両方で利用できるはずです。自動的に client にのみ提供され、アプリが壊れます。

次の構造を試してください。

/クライアント/テンプレート/body.js:

Template.body.helpers({
    projects: function(){
        var projects = Project.find({});

        return projects;
    }
});

/collections.js

Project = new Mongo.Collection("project");

クライアントフォルダー内にファイルを作成する場合、 if(Meteor.isClient) は必要ないことに注意してください。

于 2015-04-09T11:30:38.127 に答える
0

使えば効果あると思います

Template.projectList.helpers

それ以外の

Template.body.helpers

ヘルパーがテンプレート用の場合、本文ではなくテンプレート名を入力する必要があります。

于 2015-06-23T00:12:34.860 に答える