1. 程式人生 > >樹形ztree 與angularjs結合,實現下級數據異步加載,點擊復選框 填寫到輸入框裏

樹形ztree 與angularjs結合,實現下級數據異步加載,點擊復選框 填寫到輸入框裏

沒有 hide deb out IV UNC -s parent default

html:

<input value="" type="text" id="river_cut" onclick="showMenu('river_cut_drop');" class=" btn btn-default dropdown-toggle w200 input_ao" style="text-align:left;" />

<div class="dropdown-menu w200 h450 scroll river_cut_drop" style="display:none;">

<ul id="treeriver" class="ztree"></ul>

</div>

js:

//--------------------------------下來框的顯示與隱藏----------用與帶多選按鈕的下拉框,不能點一下就關閉 ------------------------

function showMenu(dropname) {

$("." + dropname).slideDown("fast");

$("body").bind("mousedown", onBodyDown);

}

function hideMenu() {

$(".dropdown-menu").fadeOut("fast");

$("body").unbind("mousedown", onBodyDown);

}

function onBodyDown(event) {

if (!(event.target.id == "dropdown-menu" || $(event.target).parents(".dropdown-menu").length > 0)) {

hideMenu();

}

}

angularjs:

angularjs:

app.controller('leader_searchCtrl', function ($scope, $http, $rootScope) {

$scope.setting = {

check: {

enable: true,

chkboxType: { "Y": "", "N": "" }//聯動上下級勾選{ "Y": "ps", "N": "ps" }

},

view: {

showIcon: false

},

data: {

simpleData: {

enable: true,

idKey: "RiverID",

pIdKey: "pid",

rootPId: "0"

},

key: {

name: "RiverName"

}

},

callback: {

onClick: showchild,

onCheck: onCheck,

onExpand:showchild //點擊加減號也加載子層數據

}

};

//正常的異步應該用ztree的async,但我用的時候一直提示:請求的資源不支持 http 方法“GET”,其實我已經早改成post了 沒找到解決辦法 ,只好用callback 自己寫方法了

function showchild(event, treeId, treeNode, clickFlag) {

var treeObj = $.fn.zTree.getZTreeObj(treeId);

//刪除當前節點的子節點,重新加載

//treeObj.removeChildNodes(treeNode);

var parentZNode = treeObj.getNodeByParam("RiverID", treeNode.RiverID, null);//獲取指定父節點

// console.log(parentZNode);

if (parentZNode.children == undefined) {

//綁定子節點數據

$http({

method: 'POST',

url: "http://xxxxxx/api/Web/SelectRiverSecond",

data: JSON.stringify({ riverID: treeNode.RiverID }),

}).then(function successCallback(response) {

var jsondata = JSON.parse(response.data); console.log(jsondata);

if (jsondata != null && jsondata != "") {

for (i = jsondata.length - 1; i >= 0; i--) {

jsondata[i].pid = treeNode.RiverID;

jsondata[i].isParent = true;//添加樹前面的加號 ,因為異步加載 提前不知道有沒有下級

}

newNode = treeObj.addNodes(parentZNode, jsondata, false);

}

});

} //else { alert("不重新加載數據"); }


};


function onCheck(e, treeId, treeNode) {

// console.log(treeNode);

var zTree = $.fn.zTree.getZTreeObj(treeId);

nodes = zTree.getCheckedNodes(true);

v = "";

for (var i = 0, l = nodes.length; i < l; i++) {

v += nodes[i].RiverName + ",";

}

if (v.length > 0) v = v.substring(0, v.length - 1);

var cityObj = $("#river_cut");

cityObj.attr("value", v);

}

//綁定默認顯示的一級河流

$http({

method: 'GET',

url: 'http://xxxxxx/api/Web/SelectRiverFirst',

}).then(function successCallback(response) {

var data = JSON.parse(response.data);

$scope.RiverFirstList = data

$scope.actionsRiverSecond = function (index) {

var riverFirstID = $scope.RiverFirstList[index].RiverID;

$scope.SelectRiverSecond(riverFirstID);

};


for (i = $scope.RiverFirstList.length - 1; i >= 0; i--) {

$scope.RiverFirstList[i].isParent = true;//添加一級樹前面的加號

$scope.RiverFirstList[i].pid = "0";

}

$.fn.zTree.init($("#treeriver"), $scope.setting, $scope.RiverFirstList);

//console.log(data);

});

}

angularjs---end


樹形ztree 與angularjs結合,實現下級數據異步加載,點擊復選框 填寫到輸入框裏