我对新的流星1.3.1很新。所以我以前从未与助手合作过。
这是我的帮手:
this.helpers({
questions() {
return Questions.find({categoryId: this.categoryId});
}
});
第一个问题:如何在其自己的控制器中访问此帮助程序(questions
)?我尝试了$scope.questions
,this.questions
和this.play.questions
(play
是控制器的别名)。一切都是undefined
。
在我看来,我用ng-repeat='question in play.questions'
进行迭代,它运行正常。
然后我想也许在控制器中无法访问助手。所以我尝试了这个:
this.questions = Questions.find({categoryId: this.categoryId});
但问题是我得到一个空光标。知道为什么会这样吗?
答案 0 :(得分:2)
我假设您使用的是控制器功能,并且已使用
$reactive(this).attach($scope)
之前
this.questions = Questions.find({category: this.categoryId});
?不使用帮助程序时光标为空的一个原因可能是您在设置this.questions
时尚未准备好订阅。因此,您应该通过将其包装在this.autorun
内来使此作业具有反应性。通过这样做,一旦填充了客户端集合,光标就会更新。
我认为不是从你的控制器中调用你的帮助器,而是应该提取一个通用函数并在帮助器中使用它,而不是你需要它。如果我没有弄错(< - ?),助手实际上只用于将数据传送到UI。