剑道UI - Java脚本事件处理程序(代码分离+参数)
Kendo UI - Java script event handlers (code separation + parameters)
我在ASP中使用了剑道ui树视图控件。. NET MVC剃刀视图。在Kendo UI示例中,java脚本事件处理程序总是直接嵌入到视图中(我认为这是一种不好的做法)。我想这只是由于简化,但我现在已经在"myView.js"文件中的"脚本/视图"文件夹中将JS事件处理程序分离为单独的JS文件中的视图。现在我有问题了,我的资源字符串不再正确显示了。我的想法是将资源字符串作为视图中的附加参数传递给js事件处理程序,但我不知道该怎么做。下面我添加了我的代码示例。
View.cshtml:
<script src="@Url.Content("~/Scripts/views/myView.js")" type="text/javascript"></script>
@(Html.Kendo().TreeView()
.Name("treeview")
.BindTo((IEnumerable<TreeViewItemModel>)Model.MyTreeViewItemModel)
.Events(events => events
.Select("onSelect") // how to pass parameters to onSelect?
)
)
myView.js:
function onSelect(e) {
var node = this.dataItem(e.node);
// ... here I do something with node which works fine
addAlert("@Resources.MessageDeleteSuccess"); // here I call my addAlert function which worked in the view, but not after moving the function to the JS-file
}
总结一下我的问题是:
是我如何将JS事件处理程序从我的视图(在单独的JS文件)的最佳实践,还是我应该怎么做?
我如何添加参数到事件处理程序,如"OnSelect"?
From http://www.telerik.com/forums/passing-arguments-from-grid-event:
当前发送额外参数到事件处理程序是无效的支持,但是请注意,在处理程序中您可以访问通过使用"this"关键字
调用者
我对事件处理程序的"this"参数(Kendo Grid)的经验是,它几乎没有提供有用的信息。例如,我不知道如何从"this"中获取网格的UI元素。
一个解决方法是在本地定义一个处理程序,然后用你想要的参数调用myView.js中的处理程序。例如,你的处理程序可以是"viewOnSelect",在View.cs中,你将有function viewOnSelect(e) {
onSelect(e, '@Resources.MessageDeleteSuccess');
}
相关文章:
- 在Jquery中分离后,如何将相同的函数添加回代码中
- AngularJS中的代码分离
- 在Titanium中分离平台特定代码的最佳方式
- 在不使用jquery($symbol)knockout.js的情况下分离代码javascript
- 使用 IIFE 进行游戏开发 - 代码分离
- 分离AngularJs控制器代码的最佳方法
- 如何分离代码:我的控制器是否做了太多工作
- 有哪些可能的方法可以将 knockoutjs 视图模型代码与 asp.net mvc 视图分离,并对其进行 mvc 服务
- 是否可以将javascript代码与Riot Js中的标记文件分离
- 分离JavaScript代码的缺点
- React.js:将React.js代码与HTML分离
- 发布/订阅后分离文件夹的客户端和服务器的代码
- jQuery.remove(),分离DOM元素,但我仍然可以从代码访问元素.如何避免泄漏
- 如何为网站的不同部分分离javascript代码
- 如何将代码从一个路由文件分离到多个,以及如何从这些分离的文件中调用函数
- 剑道UI - Java脚本事件处理程序(代码分离+参数)
- 如何分离ajax响应和HTML代码
- 如何在Backbone.js中将视图代码分离成模型和控制器
- 可重用的D3图表与公共代码分离
- 如何使用角度不反对分离代码