我有一个Kendo网格,其中一个列是可过滤的。但是为了确保可过滤弹出窗口中值的正确定位,我需要在itemTemplate中调用一个方法,该方法将返回数据的本地化值。
我尝试在示例DOJO中实现此功能,但它确实有效。但是,这对我的实际代码不起作用。我的代码看起来有点像这样。剑道网格是在木偶视图内创建的。我无法真正找到dojo和我的代码之间的区别。在我的情况下,它给出了一个错误,即没有定义方法。 任何领导都将不胜感激。
define(function(require) {
var MarionetteView = Marionette.View.extend({
init: function(){
//init Variables
},
createGrid: function(){
var kendoGrid = $("#grid").kendoGrid({
columns: [ {
field: "country",
filterable: {
multi:true,
itemTemplate: function(e) {
//Test Method is not accessible here
return "<span><label><span>#= test(data.country|| data.all) #</span><input type='checkbox' name='" + e.field + "' value='#= data.country#'/></label></span>"
e.field + "' value='#= data.country#'/></label></span>"
}
}
}],
filterable: true,
dataSource: [ { country: "BG" }, { country: "USA" } ]
});
function test( text ){
return text + 1;
}
}
)};
return MarionetteView;
}
答案 0 :(得分:0)
它在DOJO中起作用的原因是因为该功能是在 Window 的范围内创建的。由于Grid也是在Window范围内创建的,因此您可以在项目模板中访问 test()。
在您的情况下,您的范围将更改为Marionette视图。所以,如果您现在想要使用测试,则必须执行以下操作:
window.test = function(text){ //Your logic }
这应该有效。