从已加载的控制器中获取新值

Getting new values from already loaded controllers

我有一个资源路线(问题),其中包含两条常规路线(比如工作和结果)。所以在我的结果路由中,我想放置一个 button/link 到下一个资源 link。例如,在 domain.de/question/4/RESULT 上应该出现一个 link,link 到 domain.de/question/5/WORK

所以在我的结果模板中,我写了一个像 {{#link-to 'question.work' getNextQuestionID}} 这样的助手,它使用结果控制器中的方法,看起来像

getNextQuestionID: function() {
    return (parseInt(this.model.get("id")) + 1);
}.property()

这有效(因为模型是 "parent"-question-model)。想法是:这只能工作一次!我质疑它是因为 index.html ist 一次加载了所有模板,并且恰好一次被该函数的结果填满。因此,在模板 "work" 和 "result" 之间切换时,不会重新加载该问题,并且值始终为 2(从问题 1 开始时)。

我如何实现不仅在加载模板时每个 "call" 都可重用的逻辑?

似乎当您的控制器模型发生变化时,您计算的 属性 没有观察到它,也没有重新计算它的值。这应该有效:

getNextQuestionID: function() {
  return (parseInt(this.model.get("id")) + 1);
}.property('model')