使用 zend 框架显示树 dijit
我正在尝试使用 dijit 和 zend 框架来显示类别和子类别树。一直找不到好的例子。这就是我所得到的:
基本上我得到了以下代码作为我的操作:
class SubcategoriesController extends Zend_Controller_Action{
.....
public function loadtreeAction()
{
Zend_Dojo::enableView($this->view);
Zend_Layout::getMvcInstance()->disableLayout();
//Creating a sample tree of categories and subcategories
$a["cat1"]["id"] = "id1";
$a["cat1"]["name"] = "Category1";
$a["cat1"]["type"] = "category";
$subcat1 = array("id" => "Subcat1","name" => "Subcategory1" , "type" => "subcategory");
$subcat2 = array("id" => "Subcat12","name" => "Subcategory12" , "type" => "subcategory");
$a["cat1"]["children"] = array($subcat1,$subcat2);
$treeObj = new Zend_Dojo_Data('id', $a);
$treeObj->setLabel('name');
$this->view->tree = $treeObj->toJson();
}
....
}
并且在我看来:
<?php
$this->dojo()->requireModule('dojo.data.ItemFileReadStore');
$this->dojo()->requireModule('dijit.Tree');
$this->dojo()->requireModule('dojo.parser');
?>
<div dojoType="dojo.data.ItemFileReadStore" url="/Subcategories/loadtree" jsId="store"></div>
<div dojoType="dijit.tree.ForestStoreModel" jsId="treeModel" store="store" rootId="root" rootLabel="List of Categories" childrenAttrs="children" query="{type:'category'}"></div>
<div dojoType="dijit.Tree" model="treeModel" labelAttrs="ListOfCategories"></div>
它甚至似乎根本没有尝试加载树。
任何帮助表示赞赏
I am trying to display a tree of categories and subcategories by using dijits with zend framework. Haven't been able to find a good example. This is what I've got:
Basically I got the following code as my action:
class SubcategoriesController extends Zend_Controller_Action{
.....
public function loadtreeAction()
{
Zend_Dojo::enableView($this->view);
Zend_Layout::getMvcInstance()->disableLayout();
//Creating a sample tree of categories and subcategories
$a["cat1"]["id"] = "id1";
$a["cat1"]["name"] = "Category1";
$a["cat1"]["type"] = "category";
$subcat1 = array("id" => "Subcat1","name" => "Subcategory1" , "type" => "subcategory");
$subcat2 = array("id" => "Subcat12","name" => "Subcategory12" , "type" => "subcategory");
$a["cat1"]["children"] = array($subcat1,$subcat2);
$treeObj = new Zend_Dojo_Data('id', $a);
$treeObj->setLabel('name');
$this->view->tree = $treeObj->toJson();
}
....
}
And on my view:
<?php
$this->dojo()->requireModule('dojo.data.ItemFileReadStore');
$this->dojo()->requireModule('dijit.Tree');
$this->dojo()->requireModule('dojo.parser');
?>
<div dojoType="dojo.data.ItemFileReadStore" url="/Subcategories/loadtree" jsId="store"></div>
<div dojoType="dijit.tree.ForestStoreModel" jsId="treeModel" store="store" rootId="root" rootLabel="List of Categories" childrenAttrs="children" query="{type:'category'}"></div>
<div dojoType="dijit.Tree" model="treeModel" labelAttrs="ListOfCategories"></div>
It doesn't even seem to try to load the tree at all.
Any help is appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,您必须创建单独的操作。一个用于显示,另一个用于加载:
并且您一定不要忘记
在您的views/scripts/index.phtml中(如果您使用布局,必须放置一些部分,我让您这样做):
并且在loadtree.phtmln中:
First you must create separate action. One for display, other to load:
And you dont must forget the
In your views/scripts/index.phtml (if you use layout, some parts must be placed in, i let you do that) :
And in loadtree.phtmln just: