流星+;AngularJs示例

流星+;AngularJs示例,angularjs,meteor,angular-meteor,Angularjs,Meteor,Angular Meteor,我对Meteor和AngularJs是新手。我正试图按照示例应用程序上,但我还没有能够得到它的工作到目前为止 我在这段代码中遇到错误“未定义应用程序”: app.controller('MeteorCtrl', ['$scope', '$meteor', function ($scope, $meteor) { Uncaught ReferenceError: app is not defined $scope.todos = $meteor("todos").find({});

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

它仍然抛出一个错误'error:Unknown provider:$meteroprovider您可以在另一个fork中找到一些示例

我在中构建了一个应用程序,但现在它不起作用,因为lvbreda更改了代码


有一种不同的方法可以使用

只是有同样的问题。通过添加
meteor
依赖项解决

angular.module('meteorapp', ["meteor"]) # <------------------- Here
.config ['$routeProvider', '$locationProvider', ($routeProvider, $locationProvider) ->
  $locationProvider.html5Mode(true)
  $routeProvider.when '/',
   controller: 'home'
]
angular.module('meteorapp',[“meteor”])#
$locationProvider.html5Mode(true)
$routeProvider.when'/',时,
管制员:“家”
]

我对Meteor和Angular也很陌生,我也很难做到这一点。但我想我成功地运行了基本的角度功能

我在github上发现的内容:


我希望这也适用于您。

我刚刚创建了一个简单的示例,演示如何创建一个简单的angular meteor应用程序

该应用程序显示mongo收藏中的一些项目,并可通过浏览器控制台实时更新收藏。(只是带有角度js的默认流星特征)


它可以在github上找到:。

虽然我没有使用lvbreda的Angular包,但我已经能够以一种相对简单的方式将Angular与Meteor+Blade集成为HTML模板语言。我从Daniel Olano的包开始,最后实现了自己的流星/角桥。我对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']
)

有关完整的工作示例,请参阅。非常感谢您的反馈。

我自己也在研究这个问题,并为angural制作了一个软件包。 示例代码位于: 例如:


安装meteor并运行非常简单:
mrt添加角度堆栈

我显然有偏见,但我们的团队编写并维护了这个库-我们还发布了一个将两者结合起来的教程-

我的答案很简单:不要将meteor和角度堆栈混为一谈

你为什么要这么做? 对于数据绑定功能?Meteor为您做这件事比使用助手和发布/订阅机制简单得多

建立自己的指令?Meteor模板和Blaze也能为你做到这一点

在使用angular很长一段时间之后,我最近使用了meteor,发现它非常简单:实现相同的、更清晰的指令声明的代码要少得多,在后台为您做了大量工作,特别是在提取数据子集方面

有没有必要使用流星角,只是使用流星。我还没有找到一个我需要的案例

meteor中最难掌握的概念是发布-订阅模型,但一旦获得了它,它就非常强大,因为您可以使用参数定义将哪些数据推送到客户端。然后,您只需要一个模板来渲染它

有关更多详细信息,请查阅本文

编辑:2016年1月

看看《流星》中Angular 2的基准测试,我现在可以找到使用它的理由。以前的版本绝对不是这样:

见文章:

Angular 1.x的速度比Blaze慢得多,而且在6个月前才有反应。Angular 2看起来更好,但我仍然不喜欢过于复杂


为了简单和快速,还可以查看由前Angular lead构建的、设计为与Javascript框架一起使用和移动的应用程序。

是的,大多数示例都非常古老。如果有一个最新的、有效的例子就好了。你能修复你的linepos示例吗?很高兴看到它对某人有用,我开始它是为了一个个人项目,但后来我不得不从事其他工作。我想我会很快恢复这个项目,这样它就可以有更多的功能。我自己的应用程序也有同样的问题,通过基于github.com/Urigo/meteor-angular-socially的代码修复了这个问题。我有扩展名为.tpl而不是.ng.html的文件,文件夹结构稍有不同,并且使用了一些npm模块,所以不确定是什么真正为我解决了这个问题。在我的情况下?因为离子。