小编Lio*_*han的帖子

ExtJS 4 - 在必填字段上标记红色星号

我有这个问题,fieldLabel当一个字段标记为"必需"(或allowBlank: false)时,我需要在旁边添加一个红色星号

在ExtJS3中,我们可以通过覆盖轻松实现此攻击Ext.layout.FormLayout,如下所示:

Ext.override(Ext.layout.FormLayout, {
    getTemplateArgs: function(field) {
        var noLabelSep = !field.fieldLabel || field.hideLabel;
        var labelSep = (typeof field.labelSeparator == 'undefined' ? this.labelSeparator : field.labelSeparator);
        if (!field.allowBlank) labelSep += '<span style="color: rgb(255, 0, 0); padding-left: 2px;">*</span>';
        return {
            id: field.id,
            label: field.fieldLabel,
            labelStyle: field.labelStyle||this.labelStyle||'',
            elementStyle: this.elementStyle||'',
            labelSeparator: noLabelSep ? '' : labelSep,
            itemCls: (field.itemCls||this.container.itemCls||'') + (field.hideLabel ? ' x-hide-label' : ''),
            clearCls: field.clearCls || 'x-form-clear-left'
        };
    }
});
Run Code Online (Sandbox Code Playgroud)

但这在ExtJS4中是不可能的.FormLayout不再适用,标签实际上是Ext.form.field.Base通过使用调用的mixins来呈现的Ext.form.Labelable …

forms extjs required-field extjs4

23
推荐指数
4
解决办法
3万
查看次数

Highcharts的onReady活动?

onReadyHighCharts 是否有任何(或类似的)准备事件?

目前,HighCharts只提供addSeries,click,load,redraw,和selection对于图表对象(http://www.highcharts.com/ref/#chart-events).显然load应该是"准备好图表"事件的那个,但事实并非如此.它正在"加载数据时"触发事件

以下是他们的示例load:http://jsfiddle.net/hgbQm/

以下是上述代码的修改版本,显示在触发chart时尚未就绪load:http://jsfiddle.net/QzKky/1/

任何的想法?

或者,我需要做一个延迟的电话,但那将是如此丑陋.谢谢!

javascript highcharts

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

无法指定正确的打印尺寸

我们最近收购了兄弟QL-700打印机,我们正在通过这台机器进行贴纸打印.

我们喂食的纸是62毫米宽的贴纸卷,没有"长度"限制.

问题是,不管我怎么做(我试过Book,PrintRequestAttributeSet),我无法使用Java来告诉打印机对话窗口使用正确的纸张尺寸打印机.我无法做到,例如,我们需要的确切的62毫米×40毫米.它总是"按下"到最近的纸张:

这是有问题的代码:

PrinterJob job = PrinterJob.getPrinterJob();
PageFormat pf = job.defaultPage();
Paper p = pf.getPaper();
p.setSize(UnitConv.mm2pt(62), UnitConv.mm2pt(40));
p.setImageableArea(0, 0, UnitConv.mm2pt(62), UnitConv.mm2pt(40));
pf.setPaper(p);
pf.setOrientation(PageFormat.LANDSCAPE);

job.setPrintable(this, pf);

if (job.printDialog()) {
    try {
        job.print();
    } catch (Exception PrintException) {
        PrintException.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)



我可以确认打印机可以随意打印,如下面的屏幕截图所示(使用Brother的P-touch编辑器).请注意,虽然它是可调整的,但是36mm由软件本身预设:

所以问题:

如何强制length纸张的" "精确到40mm?

相关: 标签打印机的自定义纸张尺寸(Brother QL 570)

编辑

我做了一个媒体大小查询(代码),这里是它可以支持的媒体列表:

17 mm x 54 mm: width = 0.67; height = 2.12
17 mm x 87 mm: …
Run Code Online (Sandbox Code Playgroud)

java printing java-print

12
推荐指数
1
解决办法
2536
查看次数

Apple Push Notification未提供

我知道Apple的推送通知服务(APNs)问题有点充斥着StackOverflow,所以在提出我的问题之前,我实际上做了很多研究.

基本上,我遵循了apns-php的CertificateCreation,一些像mobiforge的教程,还有一些来自Matthijs Hollemans.不过,我无法在iPad 2上发布任何通知.

基本上这些是我所做的步骤:

  1. 我按照CertificateCreation教程,我出来了server_certificates_bundle_sandbox.pem,entrust_root_certification_authority.pem.
  2. 按照mobiforge博客中指定的教程,我成功创建了App ID,配置文件并将它们很好地链接在一起.

    • 描述:APNTest
    • 捆绑种子ID:使用团队ID
    • 捆绑标识符:com.learn.APN
  3. 然后我使用我刚才用来获取证书的相同证书请求启用开发推送SSL证书(仅限现在),然后下载并将其安装到我的钥匙串中.

  4. 我在.mobileprovision文件中下载了配置文件,并将其加载到我的iPad 2设备下的Xcode管理器中.

  5. 接下来我创建一个只包含以下代码的简单应用程序

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
        // Override point for customization after application launch.
        return YES;
    }
    
    - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
    {
        NSLog(@"%@", deviceToken);
    }
    
    - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
    {
        NSLog(@"Error: %@", error);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  6. 然后我配置构建参数:

    • 目标>信息>构建标识符:net.learn.APN …

iphone objective-c push-notification ipad ios

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

ExtJS 4 GridView - 如何获取单元格的td或div?

在GridPanel中,我们都知道我们可以renderer在列配置中指定自定义单元格.现在有一个特殊情况我需要构建一个自定义的可视化进度条(画布)以绘制到单元格中,我的问题是如何获取el单元格

在渲染器回调,可用值是value,metadata,record,rowIndex,columnIndex,store,和view.我已经尝试过view.getNode或者view.getCell没有运气.

提前谢谢你!

/莱昂内尔

编辑

一些进一步的矿区后,我意识到我的节点实际上不是由渲染器被调用,也就是说,时间准备view.getNodeview.getCell实际上是在工作,但延迟(返回null所有的时间)

解决方法是setTimeout在节点准备好后使用和呈现元素.这绝对不是处理案件的最佳方式.无论如何欢迎任何建议:)

/莱昂内尔

grid view cell extjs4

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

调用.disconnect()后如何重新连接

问题:在您发布手册后如何将客户端重新连接到服务器.disconnect()

在我当前的项目中,当用户从会话中注销时,我需要断开客户端与服务器的连接.我做了一个socket.disconnect()成功断开连接.服务器从会话中删除了用户.

一段时间后,用户决定再次登录,但socket.io拒绝连接.

我很清楚Socket.IO已经实现了重新连接算法,但显然这是一个不同的情况.

下面是我进行连接的代码段.在此代码块的第二个触发器上,socket创建了对象,但是没有connect从该对象触发.

//Start the socket
var socket = io.connect(SOCKET_IO_URL);
socket.on('connect', function() {
    me.fireEvent('connect');
    socket.emit('register', {
        hashed_identifier: hashed_identifier,
        account_id: account_id
    });
});

socket.on('ready', function() {
    me.ready = true;
    me.log('Handshake done. Listening for new data');
});

socket.on('data', function(data) {
    me.fireEvent('data', data);
    //Tells server we received it
    socket.emit('data', {ack: 1});
});

socket.on('disconnect', function() {
    me.fireEvent('disconnect');
});
Run Code Online (Sandbox Code Playgroud)

更新:根据@Tony的要求

事实上整个事情都包含在Sencha Touch 2.0中,但我相信这与ST2.0无关

这是我的数据类.这个类的用法是当用户登录时,这个类将被初始化.在用户注销后,系统将调用disconnect()此类中的方法.

当用户再次登录时,此类将再次初始化,但有趣的是套接字以某种方式保留了之前的所有先前事件和会话.

/**
* Serve as interface to wait …
Run Code Online (Sandbox Code Playgroud)

javascript websocket node.js socket.io

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

Extjs多重继承?

我有一个关于ExtJS中的多重继承的问题.虽然我知道我可以简单地复制代码以使其发生,但我想知道是否有任何方法可以更有效地编码它.

GridPanel我的框架中有一个自定义组件,称为Kore.ux.grid.GridPanel.它扩展Ext.GridPanel了额外的通用功能,并为REST操作提供接口.

不久之后,我的同事希望也必须EditorGridPanel以同样的方式实现,即,她希望它是可编辑的,同时,能够轻松地执行REST操作.

我的问题是,有什么办法可以扩展Ext.EditorGridPanel以采用定制的Kore.ux.grid.GridPanel功能吗?

对不起任何语法错误,如果它令人困惑我可以改写它.谢谢!!

编辑

我再次搜索,我发现线程说这是不可能的.如果我有这个问题,我应该遵循更好的编码模式吗?

谢谢!

再次编辑

很抱歉,我找到了适合我的结构..这是我发现对我有用的方法:

var Common = function(){}   //abstract class
Ext.apply(Common.prototype, {

    a : function(){},
    b: function(){}...

});

Ext.ux.SomePanelA = Ext.extend ( Ext.Panel, {

    stuff : ............

});

Ext.ux.SomePanelB = Ext.extend ( Ext.Panel, {

    diffStuff : ............

});

Ext.applyIf(Ext.ux.SomePanelA.prototype, Common.prototype);
Ext.apply(Ext.ux.SomePanelB.prototype, Common.prototype);
Run Code Online (Sandbox Code Playgroud)

代码来源:http://www.sencha.com/forum/showthread.php?48000- multiple-inheritance&p = 228271&viewfull = 1# post228271

如果您认为自己有更好的解决方案,请再次提供有用的建议:)谢谢!

javascript inheritance extjs gridpanel

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

Extjs Restful Store,批量发送请求?

我用这样的商店配置创建了一个Grid组件:

    //Create the store
    config.store = new Ext.data.Store({
        restful: true,
        autoSave: false,
        batch: true,
        writer: new Ext.data.JsonWriter({
            encode: false
        }),
        reader: new Ext.data.JsonReader({
            totalProperty: 'total',
            root: 'data',
            fields: cfg.fields
        }),
        proxy: new Ext.data.HttpProxy({
            url:cfg.rest,
            listeners:{
                exception: {
                    fn: function(proxy, type, action, options, response, arg) {
                        this.fireEvent('exception', proxy, type, action, options, response, arg);
                    },
                    scope: this
                }
            }
        }),
        remoteSort: true,
        successProperty: 'success',
        baseParams: {
            start: 0,
            limit: cfg.pageSize || 15
        },
        autoLoad: true,
        listeners: {
            load: {
                fn: function() { …
Run Code Online (Sandbox Code Playgroud)

javascript rest extjs store extjs3

3
推荐指数
1
解决办法
6782
查看次数

如何删除emberjs中的键?

我们都知道我们拥有getset使用它,但你如何delete成为一个emberjs对象的关键?

假设一个对象看起来像这样

Ember.Object.create({
    conf: {
        name: 'John',
        age: 16
    }
});
Run Code Online (Sandbox Code Playgroud)

在数据传输过程中,我需要删除一个密钥conf,比方说age.你怎么做才能正确删除密钥conf?我试过了set('conf.age', null),undefined但似乎根本没有工作.

编辑

一点点背景.当我说它不能用于设置undefined或null时,这意味着它不适合我的需要.我的类自动将conf数据保存到Mongo集合中.所以,现在假设您有一个未使用的密钥,您想要删除它,如何删除它?

请注意,有一个更大的类来管理保存过程/数据验证,因此扩展控制器只是为了删除不太合适(丑陋).并且有beforeSave一个扩展类可以挂钩来清理未使用的键的操作,但问题是如何删除此键?

貌似这样一个简单的动作在ember中不存在,可能是为了处理所有类型的绑定/观察者.

javascript ember.js

3
推荐指数
1
解决办法
4521
查看次数

关于如何将APN的设备令牌链接到注册用户的建议(通过phonegap或UIWebView)

类似的问题:jQueryMobile,Phonegap和设备令牌 - iOS

方案是,我有这个基于Web的PhoneGap应用程序,本机iOS帮我在APN上注册了设备,我在服务器数据库中收到了设备令牌.

问题1:如何使用PhoneGap将注册用户(通过UIWebView)与此设备令牌相关联?

  • 我现在想到的是编写一个自定义插件并在用户注册期间传递设备令牌.还有更好的选择吗?

问题2:由于device_token可以不时更改,我应该如何将此用户重新链接到此device_token?

  • 也许每当用户登录时,我都会做一个window.plugins.PluginName .getDeviceToken并同步吗?
  • {user_id:123, old_device_token: 'xxxx..', new_device_token: 'xxx...'}

Fyi,这个应用程序是为一个活动而构建的,客户已经要求人们在这个移动应用程序上发送消息.当他收到朋友的消息时,如何将新消息通知推送给"John Doe"? - 问题是如何将"John Doe"链接到特定的device_token?

这可能不是iOS特定的,因为此应用程序也必须部署在Android(C2DM)上.

欢迎任何帮助!

编辑:可能解决方案?

不安的研究出现了这种可能的解决方案:

  1. [Native]应用程序已启动 - 已启动APN注册并收到device_token
  2. [Native]将此device_token存储到本地存储(CoreData/SqlLite或Property Lists?)并将其发送到服务器以进行device_token注册
  3. [WebView]每当用户登录或注册时,将通过PhoneGap查询此device_token,进行哈希并将其发送到服务器以进行登录,比较和链接.

任何不可预见的情况都有问题吗?

编辑:答案

我在答案中公布了完整的工作解决方案.请在此处查看:https://stackoverflow.com/a/9628592/534862

push-notification apple-push-notifications ios cordova

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

Chrome扩展程序:将内容写入沙盒环境中创建的动态iframe

我无法克服这个问题.有人可以提一些建议吗?

  1. 我有这个使用ExtJS库的应用程序,我需要在Chrome扩展程序中运行.我已成功创建了我的消息传递桥(postMessage),并将整个应用程序沙盒化,并且一切正常.ExtJS加载,应用程序正在运行.

  2. 然后我有这个逻辑,我需要在我的ExtJS视口中预览一段HTML片段.我iframePanel自己创建了一个,并afterrender尝试在其中编写代码片段.这是我使用的代码:

    html: '<iframe src="about:blank" style="width:100%;height:100%;border:none;"></iframe>';
    
    ......
    
    //p is the panel found in afterrender
    p.body.down('iframe').dom.contentDocument.write(content);
    
    Run Code Online (Sandbox Code Playgroud)

    那么错误:

    不安全的JavaScript尝试访问具有以下URL的URL的框架:带有URL chrome-extension的框架中的空白://fcnpmlgapilgclcelfanblpbglmkghbc/core/themes/default/app.html.域,协议和端口必须匹配.

  3. 我已经尝试postMessage在沙盒中使用这个动态的iframe,但没有任何反应.sandbox在清单中设置属性也不起作用.这是唯一的方法,它的工作原理.请参阅下面的答案.

题:

  1. 如何设置清单来支持这种用例?
  2. 或者有没有更好的方法来预览HTML片段而不使用iframe?Afaik预览iframe是最好的,因为它沙盒的片段没有被父css搞砸.

注意

这段代码在manifest v1中工作正常但我计划将它迁移到manifest v2.我没有意识到内容安全策略(CSP)已经变得严格.

一个描述问题的屏幕;)

屏幕

javascript iframe google-chrome postmessage google-chrome-extension

2
推荐指数
1
解决办法
3572
查看次数

如何在NestedList中知道叶子项的父级?

有没有一种方法可以知道叶子项目的父项目?就像我有一个像这样结构的商店:

root: {
        items: [
            {
                text: 'Parent1',
                items: [
                    { text: 'Child1', leaf: true },
                    { text: 'Child2', leaf: true },
                    ............
Run Code Online (Sandbox Code Playgroud)

当我点击叶子项目时,我需要知道哪个父项具有此叶项目.我找不到任何有关此方法的特殊方法.

extjs sencha-touch sencha-touch-2

0
推荐指数
1
解决办法
421
查看次数