extjs - 在 View 和 View Controller 之间继承的 MVVM

标签 extjs mvvm viewcontroller extjs6

我们如何使用 ExtJs MVVM 模式扩展 View ?扩展绑定(bind)了 View Controller 的 View 的正确方法是什么?

我有一个带有 View Controller 的基本 View ,我想扩展它,就像在 this fiddle 中那样.

问题是基本 View Controller 中定义的方法在扩展 View 中不再可用。 ExtJs 仅在扩展 View Controller 中查找要调用的方法。

Ext.define('Fiddle.view.Base', {
    extend: 'Ext.panel.Panel',
    requires: [
        'Fiddle.view.BaseController'
    ],
    controller: 'base',
    tbar: [{
        text: 'Base button',
        handler: 'onBaseMethod'
    }]
})

Ext.define('Fiddle.view.BaseController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.base',
    onBaseMethod: function(me){
        Ext.Msg.alert('Base', 'Base method')
    }
})

Ext.define('Fiddle.view.Extended', {
    extend: 'Fiddle.view.Base',
    requires: ['Fiddle.view.ExtendedController'],
    controller: 'extended',
    title: 'Viewcontroller inheritance',
    bodyPadding: 5,
    html: 'The Base button does not work, because the method is searched in ExtendedController only.',
    bbar: [{
        text: 'Extended button',
        handler: 'onExtendedMethod'
    }]
})

Ext.define('Fiddle.view.ExtendedController', {
    extend: 'Ext.app.ViewController',
    alias: 'controller.extended',
    onExtendedMethod: function(me){
        Ext.Msg.alert('Extended', 'Extended method')
    },
    renderTo: Ext.getBody()
})

最佳答案

您可以使用 onExtendedMethod 方法简单地扩展“Fiddle.view.BaseController”。 见 fiddle https://fiddle.sencha.com/#fiddle/20m3

明确地说:只需替换

Ext.define('Fiddle.view.ExtendedController', {
    extend: 'Ext.app.ViewController',

Ext.define('Fiddle.view.ExtendedController', {
    extend: 'Fiddle.view.BaseController',

关于extjs - 在 View 和 View Controller 之间继承的 MVVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289133/

相关文章:

extjs - tabIndex 如何用于 ExtJS 字段(确认)?

EXTJS 5 - ViewModel 获取 Store 返回空值

c# - 从 ListBox 中的数据对象获取 DataTemplate

objective-c - 如何在swift中使用其他类的指针

css - ExtJS、组合、列表框、文本对齐

jquery - Extjs 与 Devexpress ChartJS

c# - WPF - 当我使用 MVVM 从 MainWindow 调用 ChildWindow 时如何隐藏按钮

java - MVVM 设计模式是否强制 ViewModel 和 View 具有 Observable 和 Observer 关系?

ios - 如何在从左向右滑动时禁用 ViewController 关闭?

Swift - 带有多个 UIPickers 的 View Controller .