gpt4 book ai didi

javascript - 如何在 Ember JS 中从父 Controller 获取子 Controller 的引用?

转载 作者:行者123 更新时间:2023-11-30 17:27:10 25 4
gpt4 key购买 nike

我有一个包含答案数组的问题模型对象。 Question 和 Answer 都有一些需要验证的属性。我正在使用 Ember 验证。当用户尝试保存时,我需要触发对问题和答案的验证。所以,我正在触发问题 Controller 验证,但如何强制问题 Controller 等待 AnswerControllers 验证?由于 AnswerController 引用了 QuestionController(父级),它们可以观察父级的属性并触发它们的验证。但问题是我如何强制 QuestionController 等待答案 Controller 验证? Question 有自己的属性,因此 QuestionController 不能是数组 Controller !

最佳答案

您的子 Controller 很可能与使用 itemController 的某些数组 Controller 相关。使用数组 Controller 的上下文,您可以迭代它,您将拥有子 Controller 的每个实例。

App.FooController = Em.ArrayController.extend({
itemController: 'bar',
doSomething: function(){
this.forEach(function(itemController){
console.log(itemController);
});
}
});

但正如您所提到的,您的问题不是数组 Controller ,所以我猜测您可能是在模板中使用 itemController 来显示答案

{{#each foo in answers itemController='answer'}}

{{/each}}

这会带来一个问题,因为您无权访问 Controller 。但是您可以使用 render

来克服这个问题

所以你不是做上面的每一个,而是做

{{render 'answers' answers}}

并且您有一个答案模板和一个答案 Controller 。

模板

{{#each foo in answers}}

{{/each}}

Controller

App.AnswersController = Em.ArrayController.extend({
itemController: 'bar',
doSomething: function(){
this.forEach(function(itemController){
console.log(itemController);
});
}
});

现在您可以迭代您的 child 。

关于javascript - 如何在 Ember JS 中从父 Controller 获取子 Controller 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24006433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com