提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:我只采一朵|2014-08-05 10:29:35.000|阅读 4825 次
概述:Kendo UI Q2 2014集成了AngularJS,本文将和你分享快速掌握Angular Kendo UI的7个秘诀。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
从Q2 2014版本开始,Kendo UI Core, Kendo UI Professional 和 server wrappers集成了Google前端JS框架AngularJS(详细更新)。Kendo UI Q2 2014集成Angular框架,无疑对Angular开发者来说是一大福音。从DropDowns到Schedulers,再到类型丰富的图表,Kendo UI强大的界面组件成为很多开发者的首选。下面,小编跟大家分享7个使用Angular Kendo UI的小技巧,让你快速掌握新功能的使用。
Angular提出了开发者对UI的期望:视野内放置的任何元素,都可以绑定到UI。更新其中的任一个,另一个也会随之更新。总的来说,这适用于Angular本身,因为Angular会追踪所有视野内的项目和DOM绑定。因此,我们自然可以假设如何Kendo UI组件绑定到一个数组,修改这个数组就会修改组件中的数据。但事实并非如此。
当Kendo UI组件的某个数组设置为k-data-source时,传递给Kendo UI组件的指令还是一个数组。Kendo UI无法识别每个集合对象的变化,它只识别特殊对象,特别是Observables, ObservableArrays 和 DataSources(封装是可见的)。所以,你在处理Kendo UI组件时,最好是用ObservableArray 或者Kendo UI DataSource,而不要采用纯数组。
Kendo UI组件触发事件,这些事件通常有一个含有重要信息的事件参数。在Angular Kendo UI中,你必须通过指令明确的传递这些参数。
<select kendo-drop-down-list k-on-change="change()"></select> <script> function HomeCtrl($scope) { // logs 'undefined' $scope.change = function(e) { console.log(e); } } </script>
另外,Angular Kendo UI要求使用事件绑定明确传递kendoEvent对象。
<select kendo-drop-down-list k-on-change="change(kendoEvent)"></select> <script> function HomeCtrl($scope) { // logs the kendo event object $scope.change = function(e) { console.log(e); } } </script>
记住这个小窍门可以节省很多时间,你不用再去花时间去想为什么事件绑定没有收到任何参数。
由于有些组件通过属性(图表尤其如此)获得了超级详细的配置,Kendo UI提供了k-options选项,使大家可以通过scope提供的选项配置对象。
这是个非常有用的功能,它可以让你将UI和相关的配置的分离。但是,由于Angular无法识别通过配置对象提供的事件绑定,所以遇到这种情况你需要调用$apply。
Kendo UI指令主要涉及到每个组件的change事件和value方法。有时候你可能在初始化阶段设置组件的value,但是随后对它进行了更改,你必须使用`value()``方法。
在Angular中,我们真正想要的是双向绑定组件,要实现这个目标,就不能使用k-value属性,而用ng-model代替。
Angular的解析引擎需要引用'Strings'属性,否则value会被当做一个scope属性。这个问题在最初阶段就可以避免,因为Kendo UI在它的声明初始化阶段不需要这样的引用。
这个简单的疏忽在使用AutoComplete, ComboBox, DropDownlist等需要判断DataSource对象中哪个字段含有密钥的组件时会出现问题。举个例子,AutoComplete绑定到一个含有对象的数据源,注意使用Kendo UI Declarative初始化和Angular Kendo UI集成之间的微妙差别:
<script> // assuming we have data that looks like this... app.people = new kendo.data.DataSource({ data: [ { text: "Alabama", value: "AL" }, { text: "Alaska", value: "AK" }, { text: "Arizona", value: "AZ" }, { text: "Arkansas", value: "AR" } ] }); </script> <!-- the autocomplete declaration looks like this (kendo ui declarative) --> <input data-role="autocomplete" data-source="app.people" data-text-field="text" data-value-field="value" /> <!-- but the Angular integrations require quotes around the dataTextField and dataValueField attributes --> <input kendo-auto-complete k-data-source="people" k-data-text-field="'text'" k-data- value-field="'value'" />
然而,这就是Angular的运行机制,我认为它自动引用字符串是反直觉的。毫无疑问,如果你不熟悉Angular参数解析,你会觉得非常混乱。所以Angular Kendo UI在Angular获取到一个不是范围内的参数时,会自动登陆控制台。这意味着当你使用某个范围外的值时,你就会收到类似于下面这种的错误提示:
kendoAutoComplete's kDataTextField attribute resolved to undefined. Maybe you meant
to use a string literal like: 'text'?
当你需要为Kendo UI组件获取一个引用时,如果你没有使用Angular,你只需要选择jQuery元素并将组件引用从它的数据参数中删除。
<script> // get the grid widget reference $('#grid').data('kendoGrid'); // O R $('#grid').getKendoGrid(); </script>
当然,用jQuery从 Angular 控制器中选择项目是一件让人纠结的事情,并且还可能导致全盘崩溃。所以,Kendo UI给出了另外一种获取组件引用的方式。所有你需要做的就是将一个范围变量传递给指令。
<div kendo-grid="grid" ...></div> <script> function HomeCtrl($scope) { $scope.refresh = function() { // scope.grid is the widget reference $scope.grid.refresh(); } } </script>
我们经常会将组件嵌入另一个组件,或者是将指令嵌入另一个指令。通常的做法是将某个Kendo UI控件放入Kendo UI Window,或者将组件放入TabsTrip, Splitter等等。如果你的范围绑定不带前缀,你很容易遇到范围层次的问题。记住,范围不是模型,它只是模型放置的地方。你一不小心就肯呢过遍布自己的模型,这可能会导致空的组件引用和其他各种古怪的问题。
Angular Kendo UI诞生的主要目的是将Kendo UI的强大功能集成到Angular中,并且不会让你放弃自己的引用去采用一个全新的框架。欲了解更多Angular Kendo UI的信息,请访问。
Telerik中国区总代理——慧都整合国内一线讲师资源,全新开发的已经正式上线!Kendo UI for jQuery线下研修班 与 Kendo UI企业内训双拳出击,总有一款适合你!
旨在帮助您快速上手Kendo UI相关产品,学会使用Kendo UI for jQuery快速建立网站和移动应用,熟悉Kendo UI核心功能,并精通多个常用控件。
将帮助您全面了解Progress相关产品,学会使用Kendo UI for jQuery快速建立网站和移动应用,快速掌握Kendo UI核心功能,并精通各类控件在项目中的合理使用。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
运用JavaScript和HTML5就能快速创建性能最优的Web应用程序
Kendo UI Mobile使用HTML5和JavaScript快速开发跨平台原生移动应用程序的移动应用程序框架
Kendo UI DataViz跨平台跨设备的数据可视化组件
Kendo UI Server Wrappers帮助你开发基于Kendo UI的出色的HTML5应用程序,并且无需亲自编写JavaScript。
Kendo UI CoreKendo UI Core是Kendo UI的开源免费版,是HTML5构架下的用于网络和移动开发的工具。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢