我试图引用放置在bootstrap模式使用的模板中的kendo网格.直接放置在app控制器的范围内时,同一网格可以工作,但会从模态实例控制器中抛出未定义的错误.
有人可以告诉我我做错了什么.
var app = angular.module('plunker', ['ui.bootstrap', 'kendo.directives']); app.controller('MainCtrl', function($scope, $modal) { $scope.name = 'World'; $scope.mySource = new kendo.data.DataSource({ data: [ {ColumnOne:'One', ColumnTwo:'Two'}, {ColumnOne:'Three', ColumnTwo:'Four'}, {ColumnOne:'Five', ColumnTwo:'Six'} ] }); $scope.myGridChange = function(){ var selectedRows = $scope.myGrid.select(); console.log($scope.myGrid.dataItem(selectedRows[0])); }; $scope.items = ['item1', 'item2', 'item3']; $scope.open = function () { $modal.open({ templateUrl: 'myGridTemplate.html', //'myTemplate.html', controller: ModalInstanceCtrl, resolve: { items: function () { return $scope.items; } } }); }; }); var ModalInstanceCtrl = function ($scope, $modalInstance, items) { $scope.items = items; $scope.selected = { item: $scope.items[0] }; $scope.myTempSource = new kendo.data.DataSource({ data: [ {ColumnOne:'One', ColumnTwo:'Two'}, {ColumnOne:'Three', ColumnTwo:'Four'}, {ColumnOne:'Five', ColumnTwo:'Six'} ] }); $scope.myTempGridChange = function(){ var selectedRows = $scope.myTempGrid.select(); console.log($scope.myTempGrid.dataItem(selectedRows[0])); }; $scope.ok = function () { $modalInstance.close($scope.selected.item); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; };
我得到了无法调用方法'select'的undefined at
var selectedRows = $scope.myTempGrid.select();
这是我的plnkr链接
http://plnkr.co/edit/GUSX6JR9HRvtdSWclvPl?p=preview
在模态之外,控制器和网格共享相同的范围.但是当它们位于模态内时,网格的范围嵌套在控制器范围内.不完全确定为什么会这样,但这就是为什么它是一个问题.
当您具有嵌套作用域时,子作用域将原型继承父作用域.在直接在子作用域上设置某些内容时,通过原型继承,它不会覆盖父作用域.因此,当Kendo设置$ scope.myTempGrid时,它只会在子范围上设置,当您尝试从控制器访问它时,它不存在.
这可能会让人感到困惑,但幸运的是,如果你总是避免将内容直接绑定到范围,那么就不应该遇到这类问题.例如,如果您将网格放在父作用域中的某个容器对象中,那么您将不会遇到此问题.
例如:http://plnkr.co/edit/0VFJfp?p = preview
控制器:
... $scope.container = {}; ...
HTML
......更好的解决方案是始终使用'controller as'语法:http://plnkr.co/edit/Pmjend?p = preview
推荐阅读
如何解决《MySQLERROR1290(HY000)--secure-file-priv选项》经验,为你挑选了4个好方法。 ... [详细] 如何解决《图像亮度对比度搜索栏》经验,为你挑选了1个好方法。 ... [详细] 如何解决《检索Android/Cloudinary上传的图片网址》经验,为你挑选了1个好方法。 ... [详细] 如何解决《为什么我不能直接访问属性".SingleAsync().Property"?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《当键盘打开时,Recyclerview不会滚动结束》经验,为你挑选了5个好方法。 ... [详细] 如何解决《如何将组合框中的项添加到数组中》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Nginx的;如何使用OCSP验证SSL客户端证书》经验,为你挑选了0个好方法。 ... [详细] 如何解决《如何使用Microsoft.SqlServer.Management.SqlParser中的类将T-SQL解析为AST》经验,为你挑选了0个好方法。 ... [详细] 如何解决《部署应用程序的java.lang.AbstractMethodError(Spring4MVC+Hibernate4/5)》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Gulp:并行运行多个节点脚本》经验,为你挑选了0个好方法。 ... [详细] 如何解决《ElixirPhoenix帮助关联模型列表》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Linux中没有符号插入的共享对象,-fno-semantic-interpositionerror》经验,为你挑选了1个好方法。 ... [详细] 如何解决《无法打开文件"***.app",因为您无权查看该文件》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何检查变量是否是生成器函数?(例如功能*产量)》经验,为你挑选了1个好方法。 ... [详细] 如何解决《perror()和printf()之间的区别》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在AmazonLinux中升级pip》经验,为你挑选了4个好方法。 ... [详细] 如何解决《如何动态更改bootstrap模态体》经验,为你挑选了2个好方法。 ... [详细] 如何解决《当我尝试在列表中找到.IndexOf(a)时,为什么这会返回-1?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《HazelcastSlowOperationDetector可以识别执行时间少于1秒的操作》经验,为你挑选了0个好方法。 ... [详细] 如何解决《@relay的目的(pattern:true)》经验,为你挑选了1个好方法。 ... [详细]吐了个 "CAO" !Tags | 热门标签RankList | 热门文章
- 1从ksh获取包含env变量的文件
- 2Chrome通过jQuery通过ajax发送废话
- 3vim编辑器:如何在不同方向切换分割窗口
- 4如何确定nsarray/nsmutablearray中是否存在具有给定属性的对象
- 5UISearchBar与iOS7中UITableView标头中的UISearchDisplayController链接
- 6mosquitto MQTT代理和带有SSL/TLS的Java客户端
- 7Haskell的Control.Concurrent.Async.mapConcurrent当前有限制吗?
- 8在Wordpress页面和帖子中插入PHP代码
- 9c#linq从linq返回一个多维数组
- 10128位结构或2个64位记录,用于提高性能和可读性
- 11从.bat调用Gradle会导致批处理执行停止
- 12如何在SQL Server 2005中更新视图
- 13在Haskell中对无限列表进行燕尾迭代
- 14如何在每个输出记录中显示结果集的总计数?
- 15JCabi方面@RetryOnFailure如何抛出异常
- 16iOS7:UICollectionView出现在UINavigationBar下
- 17Resharper重新格式化String.Format()参数
- 18无法在终端中找到XML架构命名空间错误的Spring NamespaceHandler
- 19RENAME语句实际上如何工作?
- 20在ArrayAdapter中重写getDropDownView时的样式问题
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有