Meteor:如何让 dburles:collection-helpers 与 Angular 一起工作?
Meteor: How do I make dburles:collection-helpers work with Angular?
我正在尝试将 urigo:angular
与 dburles:collection-helpers
一起使用,但我不知道语法应该是什么。
这是我使用 Meteor 时的结果:
Template.books.helpers({
books: function() {
return Books.find();
},
authors: function() {
return Authors.find();
},
author: function() {
return Authors.findOne(this.authorId);
}
});
并且在视图中:
<template name="books">
<h1>Books!</h1>
<ol>
{{#each books}}
<li>{{name}} by {{author.name}}</li>
{{/each}}
</ol>
</template>
效果很好。
现在我已经添加了Angular并且我正在更改为这个(作者不起作用):
$scope.books = $meteor.collection(function(){
return Books.find({})
});
$scope.authors = $meteor.collection(function(){
return Authors.find({})
});
$scope.author = $meteor.collection(function(){
return Authors.findOne(this.authorId);
});
对此的看法:
<li ng-repeat="book in books">{{book.name}} by {{author.name}}</li>
谢谢
在 angular 中,您将结果绑定到 $scope.author
而不是函数本身。当你打电话时
$scope.author = $meteor.collection(function() {
return Authors.findOne(this.authorId);
}
this
指的是控制器(实际上我认为它指的是收集方法......无论哪种方式),而不是这本书。
此外,angular-meteor 没有 findOne
方法,您只需添加 {limit: 1}
或使用 $meteor.object
要获得与您正在执行的操作类似的结果,您可以在控制器中执行以下操作:
function MainController($scope, $meteor) {
$scope.books = $meteor.collection(function () {
return Books.find({});
});
$scope.authors = $meteor.collection(function () {
return Authors.find({});
});
$scope.author = function (book) {
return $meteor.object(Authors, book.authorId, false);
}
}
$meteor.object
是您将用来代替 findOne 的内容。现在在 html 中你需要调用函数:
<li ng-repeat="book in books">{{book.name}} by: {{author(this.book).name}}</li>
函数是returns作者对象,当然你访问的是名字。
这是一个Meteor Pad
我正在尝试将 urigo:angular
与 dburles:collection-helpers
一起使用,但我不知道语法应该是什么。
这是我使用 Meteor 时的结果:
Template.books.helpers({
books: function() {
return Books.find();
},
authors: function() {
return Authors.find();
},
author: function() {
return Authors.findOne(this.authorId);
}
});
并且在视图中:
<template name="books">
<h1>Books!</h1>
<ol>
{{#each books}}
<li>{{name}} by {{author.name}}</li>
{{/each}}
</ol>
</template>
效果很好。
现在我已经添加了Angular并且我正在更改为这个(作者不起作用):
$scope.books = $meteor.collection(function(){
return Books.find({})
});
$scope.authors = $meteor.collection(function(){
return Authors.find({})
});
$scope.author = $meteor.collection(function(){
return Authors.findOne(this.authorId);
});
对此的看法:
<li ng-repeat="book in books">{{book.name}} by {{author.name}}</li>
谢谢
在 angular 中,您将结果绑定到 $scope.author
而不是函数本身。当你打电话时
$scope.author = $meteor.collection(function() {
return Authors.findOne(this.authorId);
}
this
指的是控制器(实际上我认为它指的是收集方法......无论哪种方式),而不是这本书。
此外,angular-meteor 没有 findOne
方法,您只需添加 {limit: 1}
或使用 $meteor.object
要获得与您正在执行的操作类似的结果,您可以在控制器中执行以下操作:
function MainController($scope, $meteor) {
$scope.books = $meteor.collection(function () {
return Books.find({});
});
$scope.authors = $meteor.collection(function () {
return Authors.find({});
});
$scope.author = function (book) {
return $meteor.object(Authors, book.authorId, false);
}
}
$meteor.object
是您将用来代替 findOne 的内容。现在在 html 中你需要调用函数:
<li ng-repeat="book in books">{{book.name}} by: {{author(this.book).name}}</li>
函数是returns作者对象,当然你访问的是名字。
这是一个Meteor Pad