加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Kendo UI和angular – $scope中没有小部件

发布时间:2020-12-17 17:59:48 所属栏目:安全 来源:网络整理
导读:我正在使用AngularJS版本1.2.27的Kendo UI版本2014.2.716,我使用指令制作了一个网格 div ng-controller="MyController as ctrl" div id="myGrid" kendo-grid k-options="{some options}"/div button ng-click="ctrl.doSomething()"/div/div 我读到如果你给网
我正在使用AngularJS版本1.2.27的Kendo UI版本2014.2.716,我使用指令制作了一个网格

<div ng-controller="MyController as ctrl">
    <div id="myGrid" kendo-grid k-options="{some options}"></div>
    <button ng-click="ctrl.doSomething()"></div>
</div>

我读到如果你给网格命名(如:kendo-grid =“myGridOnScope”),你可以这样访问控制器范围中的小部件:

myModule.controller('MyController',function($scope) {
   this.doSomething = function() {
       console.log($scope.myGridOnScope);
   }
}

console.log应该记录一个widget对象,但在我的情况下它是未定义的.我究竟做错了什么?谢谢您的帮助

解决方法

我自己发现了问题,所以如果有人遇到同样的问题,我会发一个答案.如果您在AngularJS中使用controllerAs语法,则不能只写入窗口小部件的名称 – 您必须在其前面加上控制器别名.

看看这个例子:

<div ng-controller="MyController as ctrl">
    <div kendo-grid="myGridName"></div>
</div>

这不会给你$scope上的网格对象 – 因为你需要添加ctrl前缀:

<div ng-controller="MyController as ctrl">
    <div kendo-grid="ctrl.myGridName"></div>
</div>

现在您可以访问控制器中的小部件,如下所示:

angular.module('MyModule',['kendo.directives'])
    .controller('MyController',function($scope){
        // this gives you the widget object
        console.log(this.myGridName);

        // however,this doesn't work
        console.log($scope.myGridName);
});

我希望通过这篇文章帮助过某人.干杯,

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读