我在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);
}
答案 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);
}