当我启动页面时,我启动chrome dev工具并查看源窗口,加载我的文件,然后我看到
Uncaught TypeError: $(...).kendoNotification is not a function
我试图修改已使用Kendo UI的现有应用程序。我只想添加一个通知弹出窗口。
参考docs,其常见原因并不包括所有必需的javascript资源,但它们似乎都在那里。 jquery,kendo.all.min并且还使用了kendo.modernizr
这显然是我的问题,因为所有其他kendo小部件都能正常工作。
我试图效仿这个例子 http://code.tutsplus.com/tutorials/adding-application-notifications-with-kendo-ui-core--cms-20989
有些东西正确初始化,我只是不确定它在哪里/它可能是什么。
页面本身相当大,但通知只是
<span id="popupNotification"></span>
... more html
<script>
....more stuff
$.ajax({
...
success: function (result) {
var popupNotification = $('#popupNotification').kendoNotification({
appendTo: "#SalesGrid", autoHideAfter: 5000, width: 400
}).data('kendoNotification');
var d = new Date();
popupNotification.show({ time: kendo.toString(d, 'HH:MM:ss.') + kendo.toString(d.getMilliseconds(), "000") }, "time");
}
})
</script>
[更新]
我刚刚意识到我试图在ajax调用中显示通知,所以我找到了一个更相关的例子here。
[更新2,正在调用的函数的完整来源]
function postBatch(e){
//alert('made it');
$.ajax({
url: '@Html.Raw(@Url.Action("SalesAction", "SalesController"))',
data: { batchID: e, status: "POSTED" },
async: false,
dataType: "json",
type: 'POST',
success: function (result) {
var statementBatchDS = $('#SalesGrid').data().kendoGrid.dataSource;
statementBatchDS.data(result.Data);
// *** FAILS HERE *** note: SalesGrid is a KendoUI grid
var popupNotification = $('#popupNotification').kendoNotification({
appendTo: "#SalesGrid", autoHideAfter: 5000, width: 400
}).data('kendoNotification');
var d = new Date();
popupNotification.show('Batch post error, please review', 'error');
}
});
}
Kendo UI中的哪个/哪个脚本源是定义了KendoNotificaiton小部件?我使用kendo.all.min.js,所以我假设包括一切。然而,当我调用notificaiton show方法(见上文)时,错误似乎表明它无法构造通知..这导致我认为源不包含在内,但kendo.all.min.js文件显然是当我在Chrome的开发工具中检查源代码时拉进来。
离开Telerik我走了,我读了这些
http://docs.telerik.com/kendo-ui/intro/installation/what-you-need
http://docs.telerik.com/kendo-ui/intro/supporting/scripts-general
然而,“全部”版本在参考文献中是什么
http://demos.telerik.com/kendo-ui/notification/index
答案 0 :(得分:0)
原来这只是升级我正在使用的Kendo库的版本。至少我已经超过Notification小部件没有被加载的点。