【问题标题】:vue.js: Trigger binding update manuallyvue.js:手动触发绑定更新
【发布时间】:2017-06-15 14:06:00
【问题描述】:

我有一个调用不同组件的模板:

<question-container v-for="(question, index) in questions" :question="question" :answer="getFittingAnswer(question)"></question-container>

如何从外部组件手动更新:answer?由于:answer是动态的,基于服务器上的数据和会话数据,需要getFittingAnswer函数。

更新:这是getFittingAnswer 组件方法。

getFittingAnswer(question) {
    return this[`part${question.part}answers`].find(a => a.questionId == question.Id)
}

【问题讨论】:

  • getFittingAnswer 在哪里?它是来自父组件的方法吗?
  • 是的,它工作得非常好,但必须“重新触发”。
  • 我不确定我是否理解你的情况。能否提供更完整的代码示例?
  • @Cobaltway 检查更新。
  • 抱歉,我仍然不明白问题所在。是反应性问题吗? “重新触发”是什么意思?也许您可以共享两个组件代码(父子代码),可能在小提琴或代码 sn-p 上?

标签: javascript data-binding vue.js


【解决方案1】:

您可以创建全局事件总线以更改时间调用此方法并侦听此方法并更新答案 Vue.js global event bus

【讨论】:

    【解决方案2】:

    由于getFittingAnswer 方法从我的组件数据中返回一个对象,我简化了模板:

    <question-container v-for="(question, index) in questions" :question="question" :value="part1answers.find(a => a.questionId == question.Id)"></question-container>
    

    直接使用它,数据将始终是最新的。

    【讨论】:

      猜你喜欢
      • 2018-07-08
      • 2017-10-03
      • 2015-07-31
      • 2015-07-14
      • 2014-09-13
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多