Ecco una presentazione del Devshop di febbraio 2014 sull'integrazione di Meteor with Famous. Non l'ho visto in due mesi, ma ricordo distintamente che menzionano che sì, si fa leva sul modello Collection.observe.
In breve, proprio come con React o Three.js, Luogo è ottuso al motore di template Blaze. Lo elimini completamente e rende tutti gli elementi come DOM piatti. Leggi Mark's answer about this.
Un pacchetto che sfrutta l'API require.js è stato inviato ad Atmosphere pochi giorni fa. Si chiama Famono.
L'ho utilizzato con successo per creare una dimostrazione di concetto minimalista, con observe
. È possibile trovare il source code on Github e io anche deployed it with meteor deploy.
Il codice stesso è davvero semplice. Una collezione:
// collections/clicks.js
Clicks = new Meteor.Collection('clicks');
Un po 'appuntamento fisso sul server per aggiungere un elemento:
// server/fixtures.js
if (Clicks.find().count() === 0) {
Clicks.insert({ 'number': 0 });
}
e il file index.js
:
// client/index.js
UI.body.rendered = function() {
require("famous-polyfills"); // Add polyfills
require("famous/core/famous"); // Add the default css file
var Engine = require('famous/core/Engine');
var Surface = require('famous/core/Surface');
var Modifier = require('famous/core/Modifier');
var mainContext = Engine.createContext();
var containerModifier = new Modifier({
origin: [0.5, 0.5]
});
mainContext = mainContext.add(containerModifier);
var square = new Surface({
size: [200, 200],
properties: {
lineHeight: '200px',
textAlign: 'center',
background: 'rgba(200, 200, 200, 0.5)'
}
});
Clicks.find().observe({
added: function(clickCounter) {
// This is the way that you replace content in your surface.
// Injecting handlebars templates here will probably do nothing.
square.setContent(clickCounter.number);
},
changed: function(clickCounter) {
square.setContent(clickCounter.number);
}
});
square.on('click', function() {
// Hardcoded to work with only the first item in the collection.
// Like I said, minimal proof of concept.
var clickCounter = Clicks.findOne();
Clicks.update(clickCounter._id, { number: clickCounter.number + 1 });
});
mainContext.add(square);
};
fonte
2014-04-16 17:10:25
@gadicc Ho appena visto il tuo post sul digest meteorico, sembra che sia ancora presto per una risposta definitiva, in attesa di altri contributori. –
eliminato il mio commento. dal momento che il codice è pubblico ora, ho postato come una risposta. felice di vedere quali altri approcci le persone escano. – gadicc