Ich habe vor kurzem eine neue Site mit Apostrophe CMS gestartet, und eine der Funktionen im Projekt wird Apostroph-Events erweitern, um eine Liste von "registrierten" Benutzern zu haben, die jedem Event zugeordnet sind. Ich konnte eine neue JoinByArray-Spalte zum Apostroph-Ereignis-Modul hinzufügen, und es funktioniert ordnungsgemäß beim Bearbeiten von Ereignissen.Hinzufügen eines Links für Button Aktion
Jetzt versuche ich, eine Register-Schaltfläche zum Apostroph-Ereignisse-Seiten-Modul hinzuzufügen, so dass Benutzer für das Ereignis von jeder Ereignisseite registrieren können. Ich habe zur Zeit einen Arbeits API-Endpunkt zur Verfügung, die ich mit diesem Code erstellt:
(in der Datei lib/modules/Apostroph-events-Seiten/index.js)
module.exports = {
construct: function(self, options) {
self.route('get', 'register', function(req, res) {
// Validate things with the launder module
var name = self.apos.launder.string(req.body.name);
// Deliver a JSON response
return res.send({ status: 'ok', moreInfo: 'something' });
});
}
};
Das Endpunkt wie erwartet funktioniert, aber ich bin dran, eine Schaltfläche mit einem Link zur richtigen Aktion am Frontend hinzuzufügen. Ich habe eine Schaltfläche, die korrekt in der show.html sieht überschreiben, dass ich erstellt, mit dem folgenden Code:
(In lib/modules/Apostroph-events-Seiten/views/show.html)
{{ buttons.minor('Register for Field Trip', { action: 'register' }) }}
Ich bin mir nicht sicher, wie ich einen Link zur Registrierung hinzufügen kann. Ich habe versucht, diesen Code auf die gleiche index.js Datei hinzufügen, wie oben:
(In lib/modules/Apostroph-events-Seiten/index.js)
self.registerEvent = function() {
var res;
self.api('register', {}, function(result) {
res = results;
});
};
var superBeforeShow = self.beforeShow;
self.beforeShow = function(callback) {
self.link('register', self.registerEvent);
return superBeforeShow(callback);
};
Aber wenn ich die Event-Seite zuzugreifen, Es tritt ein Fehler auf, der besagt, dass self.link keine Funktion ist. Sollte ich den Link-Code an anderer Stelle setzen?
Danke!