在typescript

时间:2015-07-05 08:44:19

标签: javascript kendo-ui telerik typescript

我在js中编写了一个启用/禁用telerik RibbonBar元素的函数。 当我试图在打字稿中再次写作时,我在调用函数' findItemByText'时遇到错误。

///enable / disable elements in the ribbonbar. example (true/false , "RadRibbonBar1", "");
function enableRibbonElement(enbaled_state_bool, ribbonbar_id, elements) {
    var rb = $find(ribbonbar_id);
    for (var i in elements)
        rb.  findItemByText  (elements[i]).set_enabled(enbaled_state_bool);
}

1 个答案:

答案 0 :(得分:1)

问题不在于调用未定义的函数( findItemByText ), 但是要转向右侧的telerik元素。

首先,我们必须包含telerik定义文件(Telerik.Web.UI.d.ts),然后我们需要转换元素。 我们可以用不同的方式做到这一点:

<强> 1。在声明元素时强制转换元素

/** enable / disable elements in the ribbonbar. example (true/false , "RadRibbonBar1", "");  */
function enableRibbonElement1(enbaled_state_bool, ribbonbar_id, elements) {
    var rb: Telerik.Web.UI.RadRibbonBar = <any> $find(ribbonbar_id);
    for (var i in elements)
        rb.findItemByText(elements[i]).set_enabled(enbaled_state_bool);
}

<强> 2。将元素投射到任何&#39;在处理它时

function enableRibbonElement1(enbaled_state_bool, ribbonbar_id, elements) {
    var rb = $find(ribbonbar_id);
    for (var i in elements)
        (<any>rb).findItemByText(elements[i]).set_enabled(enbaled_state_bool);
}

第3。声明时:避免从其他类型(数字,字符串)转换(感谢zlumer ):

/** enable / disable elements in the ribbonbar. example (true/false , "RadRibbonBar1", "");  */
function enableRibbonElement1(enbaled_state_bool, ribbonbar_id, elements) {
    var rb = <Telerik.Web.UI.RadRibbonBar>$find(ribbonbar_id);
    for (var i in elements)
        rb.findItemByText(elements[i]).set_enabled(enbaled_state_bool);
}