角作用域和剑道UI控件

Angular scope and Kendo UI controls

本文关键字:UI 控件 作用域      更新时间:2023-09-26

假设我有以下html文件:

<!DOCTYPE html>
  <html>
   <head>
   <title>LOG</title>
   </head>
   <body>
   <div class="panel panel-success">
     <!-- Default panel contents -->
     <div class="panel-heading">Log data</div>
     <div class="panel-body">
     <!-- List group -->
       <ul class="list-group">
        <li class="list-group-item">Start processing at  {{StartProcessing }}</li>
        <li class="list-group-item">Finished processing at {{EndProcessing }}</li>
    </ul>
    <div id="logTvId" kendo-tree-view
         k-data-source="treeData">
    </div>
  </div>
 </div>

和以下控制器代码:

 Arch.LogController = function ($scope, $resource, $routeParams)
    {
        var LogResource = $resource('log/:markerId', {}, {
            get: {method: "GET", isArray: false}
        });
       LogResource.get({markerId: $routeParams.markerId}, function (data1)
        {
            $scope.StartProcessing = new Date(data1.StartProcessing).toLocaleString();
            $scope.EndProcessing = new Date(data1.EndProcessing).toLocaleString();
            $scope.treeData = new kendo.data.HierarchicalDataSource({ data: [
                { text: "Item 1" },
                { text: "Item 2", items: [
                    { text: "SubItem 2.1" },
                    { text: "SubItem 2.2" }
                ] },
                { text: "Item 3" }
            ]});
       });
    };

页面加载后,我可以在页面上看到StartProcessing和EndProcessing,但我看不到treeview。如果我取出与$scope相关的代码。来自资源负载的treeData(在后面说下一条指令)然后一切都按预期进行。如果我在初始控制器代码中添加$scope.$apply(),它会抛出异常…

我做错了什么?我应该处理承诺($q ??)并等待资源加载后?

好的,实际上问题已经解决了。在资源处理程序中,我通过"手"创建剑道树视图(通过jquery,像往常一样),所以我没有使用剑道树视图指令。