标签: extjs-mvc

Symfony2 MVC和ExtJS4 MVC

有人可以向我解释一下Symfony2 MVC和ExtJS4 MVC项目的正确文件结构吗?(一起使用时!)

extjs symfony extjs4 extjs-mvc

5
推荐指数
1
解决办法
5011
查看次数

ExtJS MVC,动态加载和i18n

我想用不同的语言翻译我的ExtJS应用程序.我的问题是我正在使用ExtJS MVC框架,我的大多数JS文件都是由框架本身动态下载的.

理想的解决方案(我想到的)是在Ext.Loader(或我的Ext.app.Application)中有一个额外的选项来定义要使用的语言,并根据此选项自动下载这样的文件为" a.MyClass.fr.js"在加载我的"a.MyClass.js"之后(它将包含一个Ext.apply,覆盖我的字符串资源).目前可能还没有在ExtJS框架中提供.

我能看到的替代解决方案是在服务器端执行一个技巧.首先,将在客户端上创建一个cookie,以设置为该语言.在服务器端,我可以捕获对JS文件的所有请求,然后如果设置了cookie(例如='fr'),我将所请求的JS文件(MyClass.js)与其i18n的朋友(MyClass)组合在一起.fr.js)动态地在服务器上返回结果.这样可行,但它真的很棘手,因为它意味着其他事情(缓存......).

也许最好的方法是实现我在ExtJS框架中描述的第一个行为......

你怎么看?我正在寻找一种非常干净利落的方式!谢谢 :)

localization extjs internationalization extjs4 extjs-mvc

5
推荐指数
1
解决办法
1万
查看次数

使用extjs的相对路径4

我的目录结构如下所示.(我正在使用ext mvc)

  • www.mysite.com/ext/designer.js
  • www.mysite.com/ext/app/view
  • www.mysite.com/ext/app/store

我在这里宣布了js

 <script type="text/javascript" src="http://extjs.cachefly.net/ext-4.0.2a/ext-all-debug.js"></script>
<script type="text/javascript" src="/ext/designer.js"></script>
Run Code Online (Sandbox Code Playgroud)

我的问题是当它调用商店时路径不正确."/ Jobs/edit /"是包含js的页面

https://www.mysite.com/Jobs/edit/app/store/JobTypes.js?_dc=1326712425128

那么我如何使用extjs(在我现有的Web应用程序中)以便它将使用正确的路径.

这是设计师js

Ext.Loader.setConfig({
    enabled: true
});




Ext.application({
    name: 'MyApp',

    stores: [
        'JobTypes',
        'SalesContact',
        'Job',
        'AccountHandlers'
    ],

    launch: function() {
        Ext.QuickTips.init();

        var cmp1 = Ext.create('MyApp.view.Jobs', {
            renderTo: Ext.getBody()
        });
        cmp1.show();
    }
});
Run Code Online (Sandbox Code Playgroud)

我在配置后尝试了以下内容但它似乎没有覆盖路径.

Ext.Loader.setPath('MyApp', '/Ext/App');
Run Code Online (Sandbox Code Playgroud)

extjs extjs4 extjs-mvc

5
推荐指数
1
解决办法
8232
查看次数

使代理使用扩展Ext.data.Operation

我已经扩展Ext.data.Operation到实现自定义commitRecords方法.

Ext.data.Operation类用于商店和其代理之间的所有通信.

commitRecords方法具体用于根据从代理写入器返回的数据更新数据存储中的数据.

我似乎无法掌握如何设置代理以使用我的扩展版本Ext.data.Operation.

我一直在搜索Ext.data.*包,但似乎无法找到Ext.data.Operation创建的位置,所以我将知道要使用Ext.data.Operation自定义commitRecords方法使用这个新的扩展类的类.

有没有其他人延长过这个,可以给我一些指示?

proxy extjs datastore extjs4 extjs-mvc

5
推荐指数
1
解决办法
1713
查看次数

在开发和生产中将Ext JS 4.1 MVC应用程序集成到重写URL(mod_rewrite)中

基于Sencha的MVC应用程序架构指南中的文件结构部分创建一个新的Ext JS 4.1.1应用程序我最终得到了这个结构:

/wwwroot
    /myapplication
        /app
            /controller
            /view
        app.js
    /extjs-4.1.1
Run Code Online (Sandbox Code Playgroud)

app.js文件包含:

Ext.Loader.setConfig({
    enabled: true
});

Ext.application({
    appFolder: '/myapplication/app',
    autoCreateViewport: true,
    name: 'MyApplication',
    controllers: [
        ...
    ]
});
Run Code Online (Sandbox Code Playgroud)

一切都很好.然后我将app.js包含在我的服务器端 MVC应用程序中输出(不要与客户端 Ext JS MVC结构混淆).使用的语言和服务器端应用程序的结构对于这个问题并不重要,但输出的结果是.在开发中,应用程序的URL是:

http://servername/someidentifier1/someidentifier2
Run Code Online (Sandbox Code Playgroud)

与许多应用程序一样,mod_rewrite用于赋予标识符含义并将URL映射到服务器端代码.这些标识符映射到"物理"目录.此URL的输出是:

<!DOCTYPE html>
<html>
<head>
<title>MyApplication</title>
<link href="/extjs-4.1.1/resources/css/ext-all-debug.css" media="screen" rel="stylesheet" type="text/css" >
<script type="text/javascript" src="/extjs-4.1.1/ext-debug.js"></script>
<script type="text/javascript" src="/myapplication/app.js"></script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Ext JS的是不是在默认的推荐位置,是/wwwroot/myapplication/extjs-4.1.1,而是一个级别,因为它在多个应用程序之间共享.如果您回顾上面的app.js,您还会注意到需要设置的appFolder设置,以便使用"不存在"的URL.

这一切都可以在开发中正常工作,但下一步是使用Sencha SDK Tools生成代码的"构建" (问题基于适用于Windows的2.0.0 Beta 3版本).这是它出错的地方.我采取以下步骤:

  1. 命令行我进入/ wwwroot/myapplication目录.
  2. 我执行sencha create jsb -a …

extjs extjs4 extjs-mvc extjs4.1

5
推荐指数
1
解决办法
2184
查看次数

如何在没有多次重载的情况下重用EXT JS 4 MVC应用程序中的存储?

我正在研究extjs 4 MVC应用程序.

应用程序运行Viewport,其中包含tabpanel.每个选项卡都有自己的控制器和多个视图

请访问http://wap7.ru/folio/ext-reuseable-store/TE.html查看我的沙盒

我有一个商店多次使用(例如topmenu组合框中的一个选项卡,clietns网格中的另一个选项卡.)配置了autoload的商店:true.代理在模型中配置.

我的问题:Store多次加载 - 在控制器[stores]数组中提到.

如果我从数组中删除一个[stores] controller- combobox将为空,尽管它表示store:Ext.getStore('STORE-ID')

请给我一个提示,或者重新使用商店(不是模型)的例子,如http://docs.sencha.com/ext-js/4-0/#!/guide/mvc_pt2

extjs reusability extjs4 extjs-mvc extjs-stores

5
推荐指数
1
解决办法
5912
查看次数

以编程方式隐藏Border-Layout区域中的组件

我有一个边框布局,让我们说两个区域; 中心和西部.西区添加了分离器参数并且是可折叠的.现在我有一个工具栏,我想隐藏/显示西部区域.我通过调用toggleTargetCmp()拆分器的方法解决了这个问题.嗯,我知道,这是一个私有方法,不应该使用,但我发现没有其他方法来存档.到现在为止还挺好.这一切都有效.

但是现在我想隐藏分割器和占位符(getCollapseTarget()如果单击工具栏中的按钮,则使用拆分器的方法获取占位符ownet ).我尝试使用setVisible(false)哪个适用于拆分器,但它对占位符不起作用...在深入查看占位符实例后,我可以告诉它已设置为hidden: true但是它使用hideMode: 'offsets'默认值加上hiddenAnchestor: false未记录的API.

基于hideMode的API文档,我尝试将它设置为'display' 在调用之前setVisible(false)没有任何运气,占位符仍然保持可见.

那么我怎么能隐藏这个平板电脑呢?或者甚至有更好的方法来归档这个?

extjs extjs4 extjs-mvc extjs4.1

5
推荐指数
1
解决办法
1355
查看次数

Extjs4 mvc设计思路

我还在学习Extjs和mvc所以我有一个设计问题,我相信有人可以为我解答.我的问题是:

我有2个控制器可以处理两个不同的视图.调用两个控制器中的任何一个以基于用户类型呈现正确的视图.所以在我的情况下,如果用户是管理员,那么他们将获得基于凭证的管理员视图,如果该人是标准用户,那么他们将获得标准视图.决策逻辑应该放在app.js中还是应该有另一个控制器决定调用哪个控制器?

我想的一种方式:

管理员控制器

Ext.define('adminController', {

      // handles admin 
})
Run Code Online (Sandbox Code Playgroud)

标准用户控制器

Ext.define('standardController', {

      // handles standard 
})
Run Code Online (Sandbox Code Playgroud)

App.js

   Ext.application({
   name: 'MTK',
   autoCreateViewport: true,

     if(admin) {
       controllers: ['adminController']
     }
     else(std){
       controllers: ['standardController']
     }
});
Run Code Online (Sandbox Code Playgroud)

另一个想法:

管理员控制器

Ext.define('adminController', {

    // handles admin 
})
Run Code Online (Sandbox Code Playgroud)

标准用户控制器

Ext.define('standardController', {

    // handles standard
})
Run Code Online (Sandbox Code Playgroud)

主控制器

Ext.define('mainController', {

   if(admin){
      call adminController
   } 
   else(std){
      call standardController
   }
})
Run Code Online (Sandbox Code Playgroud)

javascript model-view-controller extjs extjs-mvc extjs4.1

5
推荐指数
1
解决办法
320
查看次数

在Ext JS 4或JavaScript中解析JSON

我有这种类型的JSON:

{"value":[{"idProductCategoryAttributeValue":43,"value":"7","sortOrder":0}]}
Run Code Online (Sandbox Code Playgroud)

我想要个别参数值.如何在Ext JS 4或简单的JavaScript中解析此JSON字符串?

javascript extjs extjs4 extjs-mvc

5
推荐指数
2
解决办法
2万
查看次数

Extjs网格列标题,将下拉菜单项添加到特定列

我正在尝试向网格中的列标题下拉菜单添加一个按钮.但是,我只想将它添加到具有某些itemId的列中.到目前为止,我已经将按钮添加到所有列,请参阅下面的代码.我不知道在哪里可以检查每个列的itemId,但它似乎没有遍历列.这有什么解决方法吗?谢谢!

items:[{
            region:'center',
            xtype:'grid',
            columns:{
                    items: COLUMNS, //defined in index.php
            },
            store:'Items',
            selType: 'checkboxmodel',
            listeners: {
                    afterrender: function() {        
                            var menu = Ext.ComponentQuery.query('grid')[0].headerCt.getMenu();
                            menu.add([{
                                    text: 'edit',
                                    handler: function() {
                                            console.log("clicked button");
                                    }
                            }]);           
                    }
            }
    }],
Run Code Online (Sandbox Code Playgroud)

grid extjs javascript-framework extjs-mvc extjs4.2

5
推荐指数
1
解决办法
7812
查看次数