window对象在控制器/链接函数中的$ scope上不可用

时间:2014-10-07 13:42:52

标签: angularjs kendo-ui angular-kendo kendo-window

我在我的HTML中添加了kendo-window

根据docs,窗口对象应该在范围内可用。

现在,我想从一个在窗口内声明的控制器内将一个监听器绑定到窗口的activate事件。即:

标记:

<body ng-app="app">

    <div kendo-window='potatoWindow'>
        <div ng-controller='PotatoController'>
            here
        </div>
    </div>

JS:

var app = angular.module("app", ["ngRoute", "kendo.directives"]);

app.controller("PotatoController", function($scope){
    $scope.potatoWindow.bind("activate",
        function () {
            console.log("potato");
        });
});

...但是在控制器期间potatoWindow上找不到窗口对象($scope)。

Qs的:

  1. 为什么窗口对象不可用?我错过了什么吗?
  2. 如果无法访问窗口对象 - 有没有办法通过其他方式获得相同的结果?

1 个答案:

答案 0 :(得分:2)

我认为你的kendo-window标记需要成为控制器标记的一部分。 另外,尝试使用k-on-activate绑定并在控制器中定义您的函数,如下所示:

MARKUP:

  <div ng-controller='PotatoController'>
             <div kendo-window='potatoWindow' k-on-activate='fry()'>
                 here
             </div>
   </div>

JS:

  var app = angular.module("app", ["ngRoute", "kendo.directives"]);    
    app.controller("PotatoController", function($scope){
         $scope.fry = function(e){
              console.log('fried!');
         };
    });