【问题标题】:How to use a controller from another controller in MVC如何在 MVC 中使用来自另一个控制器的控制器
【发布时间】:2021-12-28 08:40:45
【问题描述】:

我是 MVC 的初学者。 我正在创建一个通过 MVC 模式将文本转换为语音的逻辑。 我有扬声器控制器、扬声器视图、扬声器模型。 控制器将文本从模型传输到要朗读的视图。 此外,按相同的按钮,发音停止。

但我还有另一个控制器负责页面逻辑。 如果用户按下后退按钮,那么发音应该停止。实现这一点的最佳方法是什么? 从另一个控制器调用扬声器控制器是否正确,或者控制器之间的连接是不允许的,需要以另一种方式完成?
谢谢

【问题讨论】:

    标签: javascript model-view-controller


    【解决方案1】:

    pageController 内的 speakerController 调用方法完全没有问题。

    我从您的描述中了解到,您希望 speakerController 拥有真正的处理逻辑。在正确的实现中,应该有一个名为 speakerService 的服务,它至少具有以下两种方法:

    function play() {
      // .. method logic
    }
    
    function stop() {
      // .. method logic
    }
    

    这个服务可以被任何控制器(包括speakerController)调用。

    请记住,这不是一项义务,您也可以将所有服务逻辑保存在 speakerController 中,其行为类似于 speakerService

    在您的 pageController 中,您将拥有一个在拦截后退按钮单击事件后触发的方法,如下所示:

    function onClickBackBtn($event) {
      // ..  rest of the logic
      speakerService.stop(); // <-- call to the external speakerService method
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-25
      • 2017-11-18
      • 2013-08-11
      • 1970-01-01
      • 2013-05-28
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      相关资源
      最近更新 更多