ModelInterface为视图组件提供了数据操作功能
view.setData([
{name: "data1"},
{name: "data2"}
])
view.addData({name:"focus-ui"}); //对象
view.addData({name:"focus-ui"},0); //在位置0插入数据
view.addData([{name:"data1"},{name:"data2"}]); //多个对象数组
view.addData(new z.Data({name:"focus-ui"})); //z.Data
view.removeData({name: "focus-ui"});
view.removeData([{name: "data1"}, {name: "data2"}]);
view.clearData();
view.containsData({name:"data"}) //object
view.containsData(aData) //z.Data
view.findData("name", "focus-ui"); // name为"focus-ui"的数据
view.findData({ // name为"focus-ui"并且version为2.0的数据
name: "focus-ui",
version: 2.0
});
view.findData(function (data) {
return data.get("name")==="focus-ui"; // name为"focus-ui"的数据
})
view.filterData("type","node"); //所有的type为"node"的数据
view.filterData({ //所有的type为"node"并且shape为"circle"的数据
type:"node",
shape:"circle"
});
view.filterData(function (data) {
return data.get("type")==="node"; //所有的type为"node"的数据
})
var arr = view.getDataArray();
var count = view.getDataSize();
var nameArr = [];
view.eachData(function (data) {
nameArr.push(data.get("name"));
});
var hasGroup = false;
view.eachData(function (data,index) {
if (data.get("type") === "group") {
hasGroup = true;
return false;
}
});
var nameArr = [];
view.hEachData(function (data) {
nameArr.push(data.get("name"));
});
var rootDataArr = view.getRootDataArray();
监听的事件类型如下
view.onModelChange(function (evt) {
console.log(evt.type,evt.event);
});
var aData = new z.Data();
view.setData([new z.Data(), new z.Data()]); //type:set_provider
view.addData(aData); //type:provider
aData.set("name", "abc"); //type:data
view.removeData(aData); //type:provider
view.offModelChange(addedListener);
listener和thisArg必须和onModelChange添加时的完全一致, 事件监听才会被移除