无法从AngularJS控制器关闭Kendo UI窗口?

时间:2016-05-20 22:26:41

标签: html angularjs kendo-ui angularjs-scope

在我的控制器中,我正在使用它来打开我的Kendo UI Core窗口:

$scope.winQuestion.setOptions($scope.DlgOptions);
$scope.winQuestion.open();

这是我的html中的代码:

div kendo-window="winQuestion" k-title="'Question 1'" k-position="{ top: 60, left: 100 }"
     k-width="730" k-height="300" k-visible="false"
     k-content="{ url: 'questions.html' }"
     k-on-open="winQuestion = true" k-on-close="winQuestion = false" style="background-color:#ffffff;"></div>

现在在questions.html里面我有一个按钮,我尝试在另一个处理取消点击的函数内的同一个控制器中触发它:

  $scope.winQuestion.close();

在我搜索StackOverflow上的答案时,这个调用只能返回:

TypeError:$ scope.winQuestion.close不是函数

我怀疑它是一个范围问题但不确定为什么因为我进入了

   $scope.closeWindow = function(){
      $scope.winQuestion.close();
    };

抱歉,我没有这方面的傻瓜,但无法让kendo核心ui在那里工作,只在本地工作。

1 个答案:

答案 0 :(得分:1)

我没有对它进行过测试,但是从true/falsek-on-open事件中的k-on-close覆盖窗口变量看起来如此。

当您使用$scope.winQuestion.open();打开窗口时,on-open事件将设置为$scope.winQuestion = true;。 因此,$scope.winQuestion上的所有后续方法调用不再在该窗口的引用上进行,而是在布尔值上进行(而不是实现open()函数)