2014-02-26 108 views
0
<link href="/content/shared/styles/examples-offline.css" rel="stylesheet"> 
<link href="/styles/kendo.common.min.css" rel="stylesheet"> 
<link href="/styles/kendo.rtl.min.css" rel="stylesheet"> 
<link href="/styles/kendo.default.min.css" rel="stylesheet"> 

<script src="/js/jquery.min.js"></script> 
<script src="/js/kendo.web.min.js"></script> 
<script src="/content/shared/js/console.js"></script> 
<script> 
    $(function() { 
     datasource123 = new kendo.data.DataSource({ 
      transport: { 
       read: { 
        url:"http://localhost/KendoServices/Web/GetProductDetails", 
        dataType: 'jsonp' 
       } 
      } 
     }); 
    }); 
    $('#products').kendoGrid({ 
     dataSource: datasource123 
    }); 
</script> 

获取例外:为什么我会得到“未定义”错误,当变量已经定义

“datasource123”不确定!

+1

我觉得变量'datasource123'定义在文档就绪处理程序范围内。您也应该移动'$('#products')。kendoGrid({dataSource:datasource123});'在文档就绪处理程序中 – Satpal

+0

var datasource123 –

回答

4

datasource123在文档准备就绪之前未定义,但在此之前执行dataSource: datasource123。我认为你可以将它里面的文件准备好,并有变量作用域功能...

<script> 
    $(function() { 
     var datasource123 = new kendo.data.DataSource({ 
      transport: { 
       read: { 
        url:"http://localhost/KendoServices/Web/GetProductDetails", 
        dataType: 'jsonp' 
       } 
      } 
     }); 
     $('#products').kendoGrid({ 
      dataSource: datasource123 
     }); 
    }); 
</script> 
1

DataSource的创建中,将不会运行,直到DOM准备一个jQuery就绪功能正在做。您的第一次使用datasource123正在立即完成。因此datasource123将不会被创建,直到您尝试使用它之后。

我建议这种变化把他们无论是在jQuery的准备功能,在给定的范围内声明的变量datasource123所以它不是一个隐含的全球:

$(function() { 
    var datasource123 = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url:"http://localhost/KendoServices/Web/GetProductDetails", 
       dataType: 'jsonp' 
      } 
     } 
    }); 
    $('#products').kendoGrid({ 
     dataSource: datasource123 
    }); 
}); 
相关问题