Ответ 1
Я явно предвзятый, но наша команда написала и поддерживает эту библиотеку - angular-meteor, и мы также выпустили учебник для объединения два - angular -меторальный учебник
Я новичок в Meteor и AngularJs. Я пытаюсь последовать примеру приложения на https://github.com/lvbreda/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'
Единственный другой пример счетчика + angularjs в https://github.com/bevanhunt/meteor-angular-leaderboard, по-видимому, устарел.
Может ли кто-нибудь отправить простой, но полностью рабочий, загружаемый пример meteor + angularjs, используя пакет https://github.com/lvbreda/Meteor_angularjs?
Я явно предвзятый, но наша команда написала и поддерживает эту библиотеку - angular-meteor, и мы также выпустили учебник для объединения два - angular -меторальный учебник
Пока я не использую пакет lvbreda Angular, мне удалось интегрировать Angular с Meteor + Blade в качестве языка шаблонов HTML относительно простым способом. Я начал работу с пакетом Daniel Olano Ng-Meteor и закончил свою собственную реализацию моста Meteor/ Angular. Я новичок в Meteor и Angular, но, похоже, он работает хорошо, и мне нравится, что код очень прозрачный, так что я хорошо понимаю, как он работает.
Я написал следующий модуль CoffeeScript с именем client/ngMeteor.coffee, который определяет мост между Meteor и Angular:
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 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 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']
)
Для полного рабочего примера см. этот пример моего проекта. Обратная связь приветствуется.
Я просто создал простой пример, который показывает, как создать простое приложение angular -meteor.
Приложение отображает некоторые элементы из коллекции mongo и может обновлять коллекцию через браузер-консоль в режиме реального времени. (только параметры метеода по умолчанию с angular -js)
Его можно найти на github: https://github.com/tom-muhm/angular-meteor-example.
Вы можете найти несколько примеров в другой вилке https://github.com/alex-okrushko/Meteor_angularjs
Я создаю приложение в https://github.com/linepos/linepos, но теперь он не работает, потому что lvbreda изменил код
Существует другой подход, который вы можете использовать https://github.com/kievechua/flame-on
Просто такая же проблема. Решено, добавив meteor
зависимость
angular.module('meteorapp', ["meteor"]) # <------------------- Here
.config ['$routeProvider', '$locationProvider', ($routeProvider, $locationProvider) ->
$locationProvider.html5Mode(true)
$routeProvider.when '/',
controller: 'home'
]
Я также новичок в Meteor и Angular, и мне тоже было трудно сделать эту работу. Но я думаю, что мне удалось запустить базовую функциональность Angular.
Что я узнал, я положил на github: https://github.com/dirkk0/angularjs-meets-meteorjs
Я надеюсь, что это тоже сработает для вас.
Я сам занимался этой проблемой и сделал пакет для ангулярности. пример кода: https://github.com/bramtervoort/meteor-angular-stack/tree/example пример: http://bramtervoort-todo.meteor.com
Его очень просто установить метеорит и запустить: mrt add angular-stack
Мой ответ будет простым: не смешивайте метеор и angular!
Почему ты должен? Для возможностей привязки данных? Meteor делает это для вас намного проще, чем angular с помощниками и механизмом публикации/подписания.
Чтобы создать свои собственные директивы? Шаблоны Meteor и Blaze делают это для вас тоже.
После долгого использования angular я недавно использовал метеорит и считаю его намного проще: гораздо меньше кода для достижения того же самого более чистого объявления директив, для вас в фоновом режиме, особенно для вытягивания подмножеств данных.
Нет необходимости использовать angular с метеором, просто используйте метеорит. Я еще не нашел случай, когда мне понадобился angular.
Самое сложное понятие для метеорности - это модель публикации подписки, но как только вы ее получите, она очень эффективна, так как вы можете определить, какие данные будут переданы клиенту с параметрами. Тогда все, что вам нужно, это шаблон для его рендеринга.
Поиск этой статьи для получения дополнительной информации https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/
EDIT: январь 2016
Взглянув на тесты angular 2 в Метеор, я теперь вижу причину, возможно, использовать его. Это было не так с предыдущими версиями:
См. статью: http://info.meteor.com/blog/comparing-performance-of-blaze-react-angular-meteor-and-angular-2-with-meteor
Angular 1.x был более медленным, чем Blaze и React, всего 6 месяцев назад. angular 2 кажется лучше, но я все еще не поклонник чрезмерной сложности.
Для простоты и скорости также найдите Aurelia.io, созданный бывшим руководством angular, и рассчитанный на продолжение и перемещение с помощью фреймворка Javascript сам по себе.