2015-07-05 5 views
0

Я написал функцию в js, которая включает/отключает элементы telerik RibbonBar. , когда я попытался записать его снова в машинописном тексте, у меня есть ошибка при вызове функции «findItemByText».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

Проблема не вызов к неопределенной функции (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. заливкой элемент к 'любой' при работе на нем

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); 
} 
+0

Спасибо, upvoted и удаление мой комментарий как устаревшее. – zlumer

Смежные вопросы