【问题标题】:Add tip text dynamically to a slider将提示文本动态添加到滑块
【发布时间】:2013-03-11 12:47:21
【问题描述】:

在我的项目中,我试图将tip text (config) 动态添加到滑块中。怎么做? 我需要动态添加它,因为我在“控制器”中生成变量数组,它保存滑块每个值的文本(用于提示文本)。

var slider = Ext.getCmp('slider')
slider.setTipText(arrayOfVariables)    //What should I do here instead?

文档中没有像setTipText 这样的方法。那我应该用什么?

编辑

{
        xtype:'slider',
        animate: false,
        //plugins: [Ext.create('App.view.SliderOverride')],
        cls: 'sliderStyle',
        width: "80%",
        id: 'slider',
        value: 36/2, //must be current month
        //increment: 10,
        minValue: 1,
        maxValue: 36,
        useTips: true,          
        tipText: function(thumb){
            alert("hello");
            App.getController('TaskController')._arrMonthView[thumb.value].month;
        },
},

【问题讨论】:

    标签: javascript extjs extjs4 extjs4.1 extjs-mvc


    【解决方案1】:

    tipText 需要一个函数配置,因此您可以添加一个函数,该函数将使用来自控制器的变量;

    Ext.create('Ext.slider.Multi', {
        ....
         tipText: function(){
              return App.getController('your controller').yourVariable
         },
        .....
    });
    

    这是在创建滑块时添加的,因此您无需修改​​它,只需修改控制器中的变量即可。所以不需要重新设置提示文字功能。

    【讨论】:

    • 我试过这个。我收到错误Uncaught TypeError: Object #<Object> has no method 'getController' 。我用我分配的name 替换了App
    • 对不起,我听不懂。我在这里分配的命名空间是App。还是不行。
    • 您仍然收到错误消息?顺便说一句,您需要从函数中返回值
    【解决方案2】:

    我通过使用 Ext.slider.Tip 的getText 方法解决了这个问题。

    用于创建出现在提示正文中的文本。默认情况下,这仅返回 Tip 附加到的 Slider Thumb 的值。覆盖以自定义。

    比如在什么情况下可以使用,你看看这个link

    【讨论】:

      猜你喜欢
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多