在meteor.js中使用继承

Rom*_*ory 13 javascript model-view-controller inheritance meteor

我一直希望在Meteor中使用继承,但我在文档或Stack Overflow上找不到任何关于它的内容.

是否可以让模板从另一个抽象模板或类继承属性和方法?

zor*_*lak 18

我认为简短的答案是否定的,但这是一个更长的答案:

我在模板之间共享功能的一件事是定义一个帮助对象,然后将它分配给多个模板,如下所示:

var helpers = {
    displayName: function() {
        return Meteor.user().profile.name;
    },
};

Template.header.helpers(helpers);
Template.content.helpers(helpers);

var events = {
    'click #me': function(event, template) {
        // handle event
    },
    'click #you': function(event, template) {
        // handle event
    },
};

Template.header.events(events);
Template.content.events(events);
Run Code Online (Sandbox Code Playgroud)

它确实不是继承,但它确实使您能够在模板之间共享功能.

如果您希望所有模板都能访问帮助程序,则可以定义一个全局帮助程序(请参阅https://github.com/meteor/meteor/wiki/Handlebars):

Handlebars.registerHelper('displayName',function(){return Meteor.user().profile.name;});
Run Code Online (Sandbox Code Playgroud)