2013-03-31 10 views
12

Я новичок в Meteor и AngularJs. Я пытаюсь следовать примеру приложения на https://github.com/lvbreda/Meteor_angularjs, но до сих пор мне не удалось его запустить.Meteor + AngularJs пример

Я получаю сообщение об ошибке «Приложение не определено» в этом фрагменте кода:

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 
    }); 

Я попытался переписать выше как:

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

, который по-прежнему бросать Ошибка 'Неизвестный провайдер: $ meteorProvider < - $ meteor'

Показан только другой пример счетчика + угловой на https://github.com/bevanhunt/meteor-angular-leaderboard.

Может ли кто-нибудь отправить простой, но полностью рабочий, загружаемый пример метеора + angularjs, используя пакет на https://github.com/lvbreda/Meteor_angularjs?

+0

У меня такая же проблема с моим собственным приложением, исправлена, основываясь на моем приложении по коду от github.com/Urigo/meteor-angular-socially. У меня были файлы с расширением .tpl вместо .ng.html, немного другая структура папок и использовались некоторые модули npm, поэтому не уверен, что действительно исправил это для меня. –

ответ

2

Вы можете найти некоторые примеры в другой вилкой https://github.com/alex-okrushko/Meteor_angularjs

Я построить приложение в https://github.com/linepos/linepos, но теперь это не работает, потому что lvbreda изменил код

Там другой подход можно использовать https://github.com/kievechua/flame-on

+0

Да, большинство примеров там очень старые. Было бы неплохо, если бы был рабочий, рабочий пример. Можете ли вы исправить свой пример linepos? –

2

Просто у той же проблемы. Решаемый путем добавления meteor зависимости

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

Я тоже новичок в Meteor и Угловой - и я также имел трудное время, чтобы сделать эту работу. Но я думаю, мне удалось запустить базовую функцию Angular.

То, что я узнал, что я поставил на GitHub: https://github.com/dirkk0/angularjs-meets-meteorjs

Я надеюсь, что это работает для вас тоже.

4

Я просто создал простой пример, который показывает, как создать простое приложение углового метеор.

Приложение отображает некоторые элементы из коллекции mongo и может обновлять коллекцию через браузер-консоль в режиме реального времени. (только по умолчанию функции метеора с угловыми js)

Его можно найти на github: https://github.com/tom-muhm/angular-meteor-example.

+0

О, спасибо, ты просто спас меня! – Jide

5

В то время как я не использую Угловую упаковку lvbreda, мне удалось интегрировать Angular с Meteor + Blade в качестве языка шаблонов HTML, относительно простым способом. Я начал с пакета Даниэля Олано Ng-Meteor, и закончил с моей собственной реализацией Метеорного/Углового моста. Я новичок в Meteor и Angular, но, похоже, он работает хорошо, и мне нравится, что код очень прозрачный, так что я хорошо понимаю, как он работает.

Я написал следующий модуль CoffeeScript, названный клиент/ngMeteor.coffee, который определяет мост между Метеор и Угловое:

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'] 
) 

Для полного рабочего примера см this example project of mine. Обратная связь приветствуется.

+2

Приятно видеть, что это полезно кому-то, я начал его для личного проекта, но потом мне пришлось работать во что-то еще. Я думаю, что скоро вернусь к этому проекту, чтобы иметь больше возможностей. – olanod

6

Я явно предвзятым, но наша команда написала и поддерживать эту библиотеку - angular-meteor, и мы также выпустил учебное пособие по объединению двух - angular-meteor tutorial

-1

Мой ответ будет простым: не смешивайте метеор и углы!

Зачем вам это нужно? Для возможностей привязки данных? Метеор делает это для вас гораздо проще, чем угловатый с помощниками и механизм публикации/подписки.

Чтобы создать собственные директивы? Шаблоны Meteor и Blaze делают это для вас тоже.

После долгого использования углов я использовал метеорит в последнее время и считаю его намного проще: гораздо меньше кода для достижения того же самого более чистого объявления директив, для вас в фоновом режиме сделано много, особенно для вытягивания подмножеств данных.

Нет необходимости использовать углы с метеоритом, просто используйте метеорит. Я еще не нашел случая, когда мне нужно было угловато.

Самая сложная концепция захвата в метеоре - это модель публикации подписки, но как только вы ее получите, она очень эффективна, так как вы можете определить, какие данные будут переданы клиенту с параметрами. Тогда все, что вам нужно, это шаблон для его рендеринга.

просмотра этой статьи для получения более подробной информации https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/

EDIT: Jan 2016

Глядя на тестах угловой 2 в Метеор, теперь я могу видеть причину, возможно, чтобы использовать его. Это было определенно не в случае с предыдущими версиями:

Смотрите статью: http://info.meteor.com/blog/comparing-performance-of-blaze-react-angular-meteor-and-angular-2-with-meteor

Угловое 1.x был путь путь медленнее, чем Blaze и React всего 6 месяцев назад. Угловые 2 кажутся лучше, но я все еще не поклонник чрезмерной сложности.

Для простоты и скорости, также смотрите вверх Aurelia.io, построенный бывшим угловым ведущим, и предназначен для последнего и перемещения с помощью самой структуры Javascript.

+0

В моем случае? Из-за Иона. –