2013-03-31 16 views
12

Sono nuovo di Meteor e AngularJs. Sto cercando di seguire l'app di esempio su https://github.com/lvbreda/Meteor_angularjs ma non sono riuscito a farlo funzionare fino a quel momento.Esempio di Meteor + AngularJs

sto ottenendo un errore 'applicazione non è definito' in questo pezzo di codice:

app.controller('MeteorCtrl', ['$scope', '$meteor', function ($scope, $meteor) { 
Uncaught ReferenceError: app is not defined 
    $scope.todos = $meteor("todos").find({}); 
    $meteor("todos").insert({ 
     name: "Do something", 
     done: false 
    }); 

ho cercato di ri-scrivere quanto sopra come:

var MeteorCtrl = function ($scope, $meteor) { 
    $scope.todos = $meteor("todos").find({}); 
    $meteor("todos").insert({ 
     name: "Do something", 
     done: false 
    }) 
}; 

che è ancora gettando un errore 'Errore: provider sconosciuto: $ meteorProvider < - $ meteor'

L'unico altro esempio di meter + angularjs a https://github.com/bevanhunt/meteor-angular-leaderboard sembra datato.

Qualcuno può pubblicare un semplice, ma completamente funzionante, esempio scaricabile di meteor + angularjs utilizzando il pacchetto allo https://github.com/lvbreda/Meteor_angularjs?

+0

Lo stesso problema con la mia app, risolto basando la mia app sul codice da github.com/Urigo/meteor-angular-socially. Ho avuto file con estensione .tpl invece di .ng.html, una struttura di cartelle leggermente diversa e ho usato alcuni moduli di npm, quindi non sono sicuro di cosa sia stato effettivamente risolto per me. –

risposta

2

Potete trovare alcuni esempi in una forchetta diversa https://github.com/alex-okrushko/Meteor_angularjs

I costruire un app in https://github.com/linepos/linepos ma ora non sta funzionando perché lvbreda cambiato il codice di

C'è un approccio diverso è possibile utilizzare https://github.com/kievechua/flame-on

+0

Sì, la maggior parte degli esempi là fuori sono molto vecchi. Sarebbe bello se ci fosse un esempio attuale e funzionante. Sei in grado di correggere il tuo esempio di linepos? –

2

Ho appena avuto lo stesso problema. Risolto con l'aggiunta meteor dipendenza

angular.module('meteorapp', ["meteor"]) # <------------------- Here 
.config ['$routeProvider', '$locationProvider', ($routeProvider, $locationProvider) -> 
    $locationProvider.html5Mode(true) 
    $routeProvider.when '/', 
    controller: 'home' 
] 
2

Sono anche una novità per Meteor e angolare - e ho anche avuto un momento difficile per fare questo lavoro. Ma penso di essere riuscito a far funzionare la funzionalità angolare di base.

Quello che ho scoperto ho messo su GitHub: https://github.com/dirkk0/angularjs-meets-meteorjs

Spero che questo funziona per voi, anche.

4

Ho appena creato un semplice esempio che mostra come creare una semplice applicazione di meteore angolare.

L'app visualizza alcuni elementi da una raccolta di mongo e può aggiornare la raccolta tramite la console del browser in tempo reale. (solo le caratteristiche meteorologiche predefinite con angular-js)

Può essere trovato su github: https://github.com/tom-muhm/angular-meteor-example.

+0

Oh grazie, mi hai appena salvato ore! – Jide

5

Mentre non utilizzo il pacchetto Angular di lvbreda, sono stato in grado di integrare Angular con Meteor + Blade come linguaggio di template HTML, in un modo relativamente semplice. Ho iniziato con il pacchetto Ng-Meteor di Daniel Olano e ho finito con la mia implementazione di un ponte Meteor/Angolare. Sono nuovo sia per Meteor che per Angular, ma sembra funzionare bene e mi piace il fatto che il codice sia molto trasparente, così capisco piuttosto bene come funziona.

ho scritto il seguente modulo di CoffeeScript, chiamato client/ngMeteor.coffee, che definisce il ponte tra Meteor e angolare:

define("ngMeteor", [], -> 
    angular.module('ngMeteor.directives', []) 

    angular.module('ngMeteor.services', []) 

    angular.module('ngMeteor.blade', []).run(['$templateCache', '$rootScope', '$compile', 
    ($templateCache, $rootScope, $compile) -> 
     bodyTemplate = Template.body 
     if !bodyTemplate 
     throw new Error("A body template must be defined ('body.blade')") 

     # Render each template and place in Angular's template cache 
     $templateCache.put "#{key}.blade", render() for own key, render of Template 

     # Render the body template and have Angular compile it, then inject it into the DOM's body element 
     Meteor.startup(()-> 
     # Necessary? 
     Spark.finalize(document.body) 
     $('html').attr('data-ng-app', '') 
     $('body').html($compile(bodyTemplate())($rootScope)) 
     $rootScope.$apply() 
    ) 
    ]) 
    angular.module 'ngMeteor', ['ngMeteor.blade', 'ngMeteor.services', 'ngMeteor.directives'] 
) 

Per un esempio funzionante completo vedi this example project of mine. Il feedback è apprezzato.

+2

È bello vedere che è utile a qualcuno, l'ho iniziato per un progetto personale ma poi ho dovuto lavorare in qualcos'altro. Penso che riprenderò presto questo progetto in modo che possa avere più funzioni. – olanod

-1

La mia risposta sarà semplice: non mescolare meteora e angolare!

Perché dovresti? Per le capacità di associazione dei dati? Meteor lo fa per te molto più semplice che angolare con gli helper e il meccanismo di pubblicazione/sottoscrizione.

Per costruire le proprie direttive? Modelli di meteore e Blaze lo fanno anche per te.

Dopo aver utilizzato l'angolare per un po 'di tempo, ho utilizzato la meteora di recente e lo trovo molto più semplice: molto meno codice per ottenere la stessa, più pulita dichiarazione di direttive, tutto è fatto per te in background, soprattutto per tirare sottoinsiemi di dati.

Non è necessario utilizzare l'angolo con la meteora, basta usare la meteora. Non ho ancora trovato un caso in cui avevo bisogno di angolare con esso.

Il concetto più difficile da comprendere in meteor è il modello di sottoscrizione di pubblicazione ma una volta ottenuto, è molto potente in quanto è possibile definire quali dati vengono inviati al client con i parametri. Quindi tutto ciò di cui hai bisogno è un modello per renderlo.

Lookup questo articolo per ulteriori dettagli https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/

EDIT: Gen 2016

Guardando parametri di riferimento angolare 2 in Meteor, ora può vedere un motivo forse per usarlo. Quello non era assolutamente il caso con le versioni precedenti:

vedere l'articolo: http://info.meteor.com/blog/comparing-performance-of-blaze-react-angular-meteor-and-angular-2-with-meteor

angolare 1.x era via via più lento di Blaze e reagire solo 6 mesi fa. Angular 2 sembra molto meglio, eppure non sono ancora un fan della eccessiva complessità.

Per semplicità E velocità, anche cercare Aurelia.io costruito da ex piombo angolare e progettato per durare e muoversi con il framework Javascript stesso.

+0

Nel mio caso? A causa di Ionic. –