aceAdmin fuelux tree 从后台获取数据,并设置节点ID等属性

时间:2022-06-23 03:39:57

如题,从后台封装数据,有两种方式渲染节点的数据:

  1.全部节点加载

  2.根据父节点加载子节点

首先,先介绍下第一种渲染方式:

  后台返回数据格式(所有的附加属性,都可放在additionalParameters下):

aceAdmin fuelux tree 从后台获取数据,并设置节点ID等属性

前端页面html:

<div class="widget-body">
  <div class="widget-main padding-8">
    <div id="treeview" class="tree"></div>
    <div class="hr"></div>
   </div>
</div>

前端js渲染:

var remoteUrl = '/business/function/getFuncsTreeAll';

var remoteDateSource = function(options, callback) {
  var self = this;
  var $data = null;

  if(!("name" in options) && !("type" in options)){
    $.ajax({
      url: remoteUrl,
      data: 'parent_id=0000',
      type: 'POST',
      dataType: 'json',
      success : function(response) {
          if(response.status == "OK")
            callback({ data: response.data })
          },
      error: function(response) {
      //console.log(response);
      }
    });
    return;
  }
  else if("type" in options && options.type == "folder") {
    if("additionalParameters" in options && "children" in options.additionalParameters)
      $data = options.additionalParameters.children;//点击父节点,加载子节点
    else $data = {}//no data
  }

  if($data != null)//this setTimeout is only for mimicking some random delay
    setTimeout(function(){callback({ data: $data });} , parseInt(Math.random() * 500) + 200);

};

$('#treeview').ace_tree({
  dataSource: remoteDateSource ,
  multiSelect:true,
  loadingHTML:'<div class="tree-loading"><i class="ace-icon fa fa-refresh fa-spin blue"></i></div>',
  'open-icon' : 'ace-icon tree-minus',
  'close-icon' : 'ace-icon tree-plus',
  'selectable' : true,
  'selected-icon' : 'ace-icon fa fa-check',
  'unselected-icon' : 'ace-icon fa fa-times'
});

//show selected items inside a modal
$('#submit-button').on('click', function() {
  var output = '';
  var items = $('#treeview').tree('selectedItemsAndParents');//这个是我自己扩展的方法,框架应是selectedItems
  for(var i in items) if (items.hasOwnProperty(i)) {
    var item = items[i];
    output += item.additionalParameters['id'] + ":"+ item.name+"\n";//获取附加属性
  }

  $('#modal-tree-items').modal('show');
  $('#tree-value').css({'width':'98%', 'height':'200px'}).val(output);
});

第二种方式渲染(根据父节点加载子节点数据),主要是remoteDateSource 的实现不一样:

var remoteDateSource = function(options, callback) {
  var parent_id = null
  if( !('text' in options || 'type' in options) ){
    parent_id = "0000";//load first level data
  }
  else if('type' in options && options['type'] == 'folder') {//it has children
    if('additionalParameters' in options && 'children' in options.additionalParameters)
      parent_id = options.additionalParameters['id']
    }

    if(parent_id !== null) {//根据父节点id,请求子节点
      $.ajax({
        url: remoteUrl,
        data: 'parent_id='+parent_id,
        type: 'POST',
        dataType: 'json',
        success : function(response) {
          if(response.status == "OK")
            callback({ data: response.data })
        },
        error: function(response) {
          //console.log(response);
        }
      })
    }
  }

附录----

selectedItemsAndParents(返回选中的叶子节点以及父类节点)实现:

selectedItemsAndParents: function() {
  var $sel = this.$element.find(".tree-selected");
  var data = [];
  $.each($sel,
     function(index, value) {
      data.push($(value).data());
      var $parent = $(value).parents("li");
      $.each($parent,function(index_parent,p){
        if(typeof($(p).attr("role"))!="undefined") {
          var result = $.inArray($(p).data(), data);
          if(result==-1){
            data.push($(p).data());
          }
        }
      });
  });
  return data
}

aceAdmin fuelux tree 从后台获取数据,并设置节点ID等属性的更多相关文章

  1. Swift - 后台获取数据(Background Fetch)的实现

    前面讲了如何让程序申请后台短时运行.但这个额外延长的时间毕竟有限.所以从iOS7起又引入两种在后台运行任务的方式:后台获取和后台通知. 1,后台获取介绍 后台获取(Background Fetch)是 ...

  2. ligerUI---下拉菜单&lpar;menubar&rpar;动态显示&lpar;从后台获取数据&rpar;

    写在前面: ligerui的下拉菜单是有点丑的,这也是没有办法的事........这里主要记录下,如何从后台获取数据进行菜单显示. 有两种方式:1.使用json数组来动态添加  2.字符串拼接.  其 ...

  3. jsTree通过AJAX从后台获取数据

    页面代码: <div id="MenuTree"></div> javascript代码: $(document).ready(function ($) { ...

  4. Vue---从后台获取数据vue-resource的使用方法

    作为前端人员,在开发过程中,我们大多数情况都需要从后台请求数据,那么在vue中怎样从后台获取数据呢?接下来,我简单介绍一下vue-resource的使用方法,希望对大家有帮助. 一.下载vue-res ...

  5. 在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效??

    在Vue中使用了Swiper ,动态从后台获取数据的之后,swiper滑动失效?? 是因为swiper提前初始化了,那时候数据还没有完全出来.这里有两种解决办法 1. 使用vue提供的$nextTic ...

  6. 一、表单和ajax中的post请求&amp&semi;&amp&semi;后台获取数据方法

    一.表单和ajax中的post请求&&后台获取数据方法 最近要做后台数据接收,因为前台传来的数据太过于混乱,所以总结了一下前台数据post请求方法,顺便写了下相对应的后台接收方法. 前 ...

  7. vue&lowbar;elementUI&lowbar; tree树形控件 获取选中的父节点ID

    el-tree 的 this.$refs.tree.getCheckedKeys() 只可以获取选中的id 无法获取选中的父节点ID想要获取选中父节点的id;需要如下操作1. 找到工程下的node_m ...

  8. 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案

    1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...

  9. MVC后台获取数据和插入数据的三种方式【二】

    MVC模式下,从前端获取数据返回后台,总共有三种形式.下面的代码示例将演示如何将数据返回到后端. 一.首先我们看看表单代码,注意input标签中name的值. <html> <hea ...

随机推荐

  1. tyvj1191 迎春舞会之三人组舞

    背景     HNSDFZ的同学们为了庆祝春节,准备排练一场舞 描述     n个人选出3*m人,排成m组,每组3人.    站的队形——较矮的2个人站两侧,最高的站中间.    从对称学角度来欣赏, ...

  2. Ajax调用Conrtoller返回数据

    前端ajax function doRefund(){ $.ajax({ type: "POST", catch: false, url: "@Url.Action(&q ...

  3. 基于Qt的遥感图像处理软件设计总结

     开发工具 VS2008+Qt4.8.0+GDAL1.9  要点 接口要独立,软件平台与算法模块独立,平台中各接口设计灵活,修改时容易. 设计软件时一步步来,每个功能逐一实现,某个功能当比较独立时可以 ...

  4. SQL Server 2008 R2评估期已过的解决办法

    SQL Server 2008 R2评估期已过的解决办法   发现问题 北美产品测试服每日随机任务没有刷新 每日随机任务是使用数据库作业定期执行操作,重置玩家随机任务项 排查问题  www.2cto. ...

  5. 使用jackson对Java对象与JSON字符串相互转换的一些总结

    本文为菠萝大象原创,如要转载请注明出处.http://www.blogjava.net/bolo 代码无真相,为了最简单的说明,我直接上代码. public class User { private  ...

  6. 如何使用Visual Studio 2013 创建Azure云应用

    创建 Azure 云服务 Azure 云服务包括执行应用程序所需操作的角色.当你将云服务发布到 Azure 时,每个角色将在云中的虚拟机上运行.有关如何开发 Azure 云服务的详细信息. 创建 Az ...

  7. kettle变量(param命名参数)

    1.定义: 编辑-设置-命名参数 在当前界面下定义参数名称和缺省值. 2.引用:原始数据 通过${var}引用变量 输出 注:1.字符串在命名参数引用是需要添加单引号的,但位置参数是不需要进行转译: ...

  8. Spark基础-scala学习(八、隐式转换与隐式参数)

    大纲 隐式转换 使用隐式转换加强现有类型 导入隐式转换函数 隐式转换的发生时机 隐式参数 隐式转换 要实现隐式转换,只要程序可见的范围内定义隐式转换函数即可.Scala会自动使用隐式转换函数.隐式转换 ...

  9. Ignoring query to other database

    Ignoring query to other database 自己今天刚遇到,进入MySQL的时候,输入show databases; 产生如下错误 错误提示 Ignoring query to  ...

  10. nl命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件内容 ...