2013-08-22 112 views
2

我有一些路线:Angularjs +剑道的UI树状

when('/tvtest/:userid', {templateUrl: 'template/usertv', controller: SomeTest}). 

它加载一些HTML与emebedded剑道的UI控件:

<html> 
<head> 
    <title></title> 
    <script type="text/javascript" src="http://localhost:7000/myservice/script/jquery.min.js"></script> 
    <script type="text/javascript" src="http://localhost:7000/myservice/script/kendo.all.min.js"></script> 

    </head> 
<body> 

    <h1>{{"Hello"}}</h1> 

     <div id="example" class="k-content"> 
      <div class="demo-section"> 
       <ul id="treeview"/> 
      </div> 

      <script > 
      console.log("test message"); 
      var dataSource = new kendo.data.HierarchicalDataSource({ 
      transport: { 
       read: { 
       url: "http://demos.kendoui.com/service/Employees", 
       dataType: "jsonp" 
      } 
         }, 
      schema: { 
      model: { 
       id: "EmployeeId", 
       hasChildren: "HasEmployees" 
        } 
        } 
       }); 

      $("#treeview").kendoTreeView({ 
          dataSource: dataSource, 
          dataTextField: "FullName" 
          }); 
      console.log(kendo); 

    dataSource.read(); 
      </script> 

    {{user.UserName}} 

     </div> 
</body> 
</html> 

这是样品TreeView和它不工作路由,它打印“你好”,某些用户名,但它不显示树视图,它甚至不会在控制台上打印“测试消息”,甚至不会尝试加载jquery和kendo scipts。 是否因为加载某个模板时忽略脚本标记的内容? 我听说过angular-kendo这个项目,但我很好奇是否可以在AngularJS和kendo-ui框架内完成?看来,我只是做未便错...

UPDATE

好吧,我明白了角剑道之内的事情似乎是工作... 但我不能让树视图工作:

我有控制,如:

function HomeCtrl($scope) { 
    $scope.things = { 
    dataSource: { 
     data: [{ name: "Thing 1", id: 1 }, 
      { name: "Thing 2", id: 2 }, 
      { name: "Thing 3", id: 3 }] 
    } 
}} 

我已经模板文件使用下面的HTML返回210

<div kendo-tree-view 
     k-data-source="things" 
    k-data-text-field="'name'" /> 

但它不工作...我在做什么错???

在此先感谢。

回答

7

我从来没有能够得到一个剑道树视图的工作,而无需使用k-options类似如下:

http://jsfiddle.net/L6vSX/

查看:

<div kendo-tree-view k-options="things"> 

控制器:

$scope.things = { 
    dataSource: { 
     data: [{ name: "Thing 1", id: 1 }, 
      { name: "Thing 2", id: 2 }, 
      { name: "Thing 3", id: 3 }] 
    }, 
    dataTextField: 'name' 
} 
+1

+1刚刚遇到这个答案。谢谢! K选项工作和K数据源不。所以这很好。但是,在我的情况下,我有一个额外的问题 - 当用户选中一个复选框时,我通过ngChange触发一个控制器方法,该方法删除数据源中的一个项目。但是,我的树视图似乎不刷新删除已删除的行。这可能是你遇到过的事情吗?任何人看到任何这样的问题与数据源更新不触发树被刷新?任何想法,如果它应该在这种情况下工作? – Rajesh

+0

如果你得到一个plunkr,我会看看(如果你让它成为别人可能会问的问题:P) –

+0

感谢您的建议。我创建了一个新的问题在http://stackoverflow.com/questions/22587975/angularjs-kendo-treeview-not-updating-与jsfiddle。 – Rajesh

-1

这是我做的方式,它的工作原理是这样的:

<div kendo-tree-view k-data-source="things" /> 

$scope.things = [ 
     { name: "Thing 1", id: 1 }, 
     { name: "Thing 2", id: 2 }, 
     { name: "Thing 3", id: 3 } 
     ]