我是Meteor和AngularJs的新手。我正在尝试关注https://github.com/lvbreda/Meteor_angularjs上的示例应用,但到目前为止我无法使其正常运行。
我在这段代码中收到错误'app is not defined':
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处米+角度的唯一另一个例子似乎已过时。
有人可以使用https://github.com/lvbreda/Meteor_angularjs的包发布一个简单但完全可以下载的meteor + angularjs示例吗?
答案 0 :(得分:7)
我显然有偏见,但我们的团队编写并维护了这个库 - angular-meteor,我们还发布了一个将两者结合起来的教程 - angular-meteor tutorial
答案 1 :(得分:5)
虽然我没有使用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'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 :(得分:4)
我刚刚创建了一个简单的例子,展示了如何创建一个简单的角度流星应用程序。
该应用程序显示mongo集合中的一些项目,并可以通过浏览器控制台实时更新集合。 (只是带有angular-js的默认流星特征)
可以在github上找到:https://github.com/tom-muhm/angular-meteor-example。
答案 3 :(得分:2)
您可以在不同的分支中找到一些示例 https://github.com/alex-okrushko/Meteor_angularjs
我在https://github.com/linepos/linepos中构建了一个应用,但现在它无效,因为lvbreda更改了代码
的不同方法答案 4 :(得分:2)
刚遇到同样的问题。通过添加meteor
依赖
angular.module('meteorapp', ["meteor"]) # <------------------- Here
.config ['$routeProvider', '$locationProvider', ($routeProvider, $locationProvider) ->
$locationProvider.html5Mode(true)
$routeProvider.when '/',
controller: 'home'
]
答案 5 :(得分:2)
我也是Meteor和Angular的新手 - 我也很难做到这一点。但我认为我设法运行基本的Angular功能。
我发现了github:https://github.com/dirkk0/angularjs-meets-meteorjs
我希望这也适合你。
答案 6 :(得分:1)
我自己一直在解决这个问题并制作了一个角度包。 示例代码位于:https://github.com/bramtervoort/meteor-angular-stack/tree/example 例如:http://bramtervoort-todo.meteor.com
非常简单,只需安装流星并运行:mrt add angular-stack
答案 7 :(得分:-1)
我的回答很简单:不要混合流星和棱角分明!
你为什么要这样? 对于数据绑定功能? Meteor为你做的比使用帮助器和发布/订阅机制更加简单。
建立自己的指令?流星模板和Blaze也为你做这件事。
在使用角度很长一段时间之后,我最近使用了流星并且发现它变得如此简单:更少的代码来实现相同的,更清晰的指令声明,在后台为你做了很多,特别是用于提取数据子集。
没有必要使用角度与流星,只需使用流星。我还没有找到一个我需要角度的情况。
meteor中最难理解的概念是发布订阅模型,但是一旦获得它,它就非常强大,因为您可以定义使用参数将哪些数据推送到客户端。然后你需要的只是一个模板来渲染它。
查看这篇文章了解更多详情 https://www.discovermeteor.com/blog/understanding-meteor-publications-and-subscriptions/
编辑:2016年1月
观看Meteor中Angular 2的基准测试,我现在可以看到使用它的原因。对于以前的版本,情况绝对不是这样的:
Angular 1.x比6个月前的Blaze和React慢得多。 Angular 2似乎更好,但我仍然不是过度复杂的粉丝。
为了简单和速度,还要查找由前Angular主导构建的Aurelia.io,并设计为使用Javascript框架本身进行操作。