Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 使用k-template选项和href链接渲染角度剑道树视图的最佳方法_Angularjs_Kendo Treeview_Angular Kendo - Fatal编程技术网

Angularjs 使用k-template选项和href链接渲染角度剑道树视图的最佳方法

Angularjs 使用k-template选项和href链接渲染角度剑道树视图的最佳方法,angularjs,kendo-treeview,angular-kendo,Angularjs,Kendo Treeview,Angular Kendo,我正在尝试用href链接连接剑道树视图 treeview有一个与每个树项目相关联的href链接,但是我仍然需要修改该链接,以便仅在href是叶节点时渲染它 我的主要问题现在正试图正确渲染模板对象以读取我的reptName字段,如下所示: vm.treeItemTemplate = "<a href='\?reptname='{{dataItem.reptName}}'> {{dataItem.text}} </a>"; My sidebar.html代码: <

我正在尝试用href链接连接剑道树视图

treeview有一个与每个树项目相关联的href链接,但是我仍然需要修改该链接,以便仅在href是叶节点时渲染它

我的主要问题现在正试图正确渲染模板对象以读取我的reptName字段,如下所示:

  vm.treeItemTemplate = "<a href='\?reptname='{{dataItem.reptName}}'> {{dataItem.text}} </a>";
My sidebar.html代码:

<div data-cc-sidebar data-ng-controller="sidebar as vm">
<div class="sidebar-filler"></div>
<div class="sidebar-dropdown"><a href="#">Menu</a></div>
<div class="sidebar-inner">
    <div class="sidebar-widget">
    </div>

    <ul class="navi">  <!-- pulls from vm.routes to render left nav menu -->
         <li class="nlightblue fade-selection-animation" ng-class="{dropdown: r.config.sub}" 
            data-ng-repeat="r in vm.navRoutes">
    </ul>

      <a id="addReportLink" href="" ng-click="value = 4"><b class="fa fa-plus-square"></b></a>
      <div style="float:left;">
         <!-- TREEVIEW WIDGET WITH k-template option-->
          <span id="treeview" kendo-tree-view="tree" 
            style="color:white;"
            k-template="vm.treeItemTemplate"
            k-options="vm.treeOptions"
            k-data-source="vm.reportsTree"
            k-on-change="vm.onTreeSelect(kendoEvent)">
        </span>      
      </div>         
 </div>    

我的sidebar.js控制器是:

(function () { 
'use strict';

var controllerId = 'sidebar';
angular.module('app').controller(controllerId,
    ['$route', 'config', 'routes', 'datacontext', '$scope', sidebar]);

function sidebar($route, config, routes, datacontext, $scope) {
    var vm = this;

    vm.isCurrent = isCurrent;

    vm.onTreeSelect = onTreeSelect; // TreeView select event
    vm.selectedReport = '';

    vm.treeOptions = {         // SET TREEVIEW OPTIONS !!
        checkboxes: {
            checkChildren: true                
        },
        dragAndDrop: true
    };
    vm.reportsTree = [];        

    // SET KENDO TEMPLATE HERE !
    vm.treeItemTemplate = "<a href='\?reptname='{{dataItem.reptName}}'> {{dataItem.text}} </a>";
    activate();

    function activate() {
              getNavRoutes(); getReportsTree() 
    }

    function getNavRoutes() {
        vm.navRoutes = routes.filter(function(r) {
            return r.config.settings && r.config.settings.nav;
        }).sort(function(r1, r2) {
            return r1.config.settings.nav - r2.config.settings.nav;
        });
    }        
    function isCurrent(route) {
        if (!route.config.title || !$route.current || !$route.current.title) {
            return '';
        }
        var menuName = route.config.title;
        return $route.current.title.substr(0, menuName.length) === menuName ? 'current' : '';
    }
    function getReportsTree() {
        return datacontext.getReportsTree().then(function (data) {
            return vm.reportsTree = data;
        });
    }
    function onTreeSelect(e) {
        vm.selectedReport = e.sender._current.text();
        console.log("Selected report: ", vm.selectedReport);
    }         
};
})();
(函数(){
"严格使用",;
var controllerId='侧栏';
角度。模块('app')。控制器(controllerId,
[“$route”,“config”,“routes”,“datacontext”,“$scope”,侧栏];
函数侧栏($route,config,routes,datacontext,$scope){
var vm=这个;
vm.isCurrent=isCurrent;
vm.onTreeSelect=onTreeSelect;//树视图选择事件
vm.selectedReport='';
vm.treeOptions={//设置树视图选项!!
复选框:{
孩子们:是的
},
dragAndDrop:没错
};
vm.reportsTree=[];
//在这里设置剑道模板!
vm.treeitemplate=“”;
激活();
函数激活(){
getNavRoutes();getReportsTree()
}
函数getNavRoutes(){
vm.navRoutes=routes.filter(函数(r){
返回r.config.settings&&r.config.settings.nav;
}).sort(函数(r1、r2){
返回r1.config.settings.nav-r2.config.settings.nav;
});
}        
功能为当前(路由){
如果(!route.config.title | |!$route.current | |!$route.current.title){
返回“”;
}
var menuName=route.config.title;
返回$route.current.title.substr(0,menuName.length)==menuName?'current':'';
}
函数getReportsTree(){
返回datacontext.getReportsTree().then(函数(数据){
返回vm.reportsTree=data;
});
}
功能onTreeSelect(e){
vm.selectedReport=e.sender.\u current.text();
log(“所选报告:”,vm.selectedReport);
}         
};
})();
当我开始学习Angular以及与剑道UI的集成时,任何建议或指导都将不胜感激

致以最良好的祝愿。 Bob

k-template=“vm.treeItemTemplate”没有使用href链接,并且没有人对此提供任何建议。 我最终使用了:

   vm.onTreeSelect = onTreeSelect;
在我的控制器代码中;在onTreeSelect()函数中,我使用带有参数的$location服务重定向了url:

   $location.url(<url with parameters>);
$location.url();
然后使用
$location.hash()
方法在目标页面上检索查询字符串

   vm.onTreeSelect = onTreeSelect;
   $location.url(<url with parameters>);