0
我想用typeScript + Angular2構建一個簡單的遞歸樹。 當我到了第二級節點顯示一秒鐘然後消失,我想一些事件正在清洗我的收藏,但我無法弄清楚哪一個。 這是我的代碼:遞歸樹,節點正在消失
@Component({
selector: 'sp-item-template',
template:
` {{CurrItem.Title}}
<div *ngIf="CurrItem.subItems">
<ul>
<li *ngFor="let item of CurrItem.subItems" (click)="folderClick(item)">
<sp-item-template [CurrItem] = "item" ></sp-item-template>
</li>
</ul>
</div>
`
// templateUrl:'./sp-lists.component.html'
})
export class SpItemTemplate
{
@Input() CurrItem:SpItem;
private listsService: SpListService
constructor(@Inject(SpListService) list_service: SpListService){this.listsService = list_service;}
private folderClick(item: SpItem)
{
item.setListService(this.listsService);
item.GetSubFolders(item.ParentWebRelativeUrl);
}
}
import { Component, Inject } from '@angular/core';
import {SpListService} from './sp-list.service'
export class SpItem
{
Title: string;
Id: string;
Name:string;
RelativeUrl:string;
Type:string;
ParentWebRelativeUrl: string;
private subItems:SpItem[];
private listsService: SpListService
constructor(@Inject(SpListService) list_service: SpListService){this.listsService = list_service;}
public setSpItemAsDoclib(title:string, id:string, name:string, parentWebUrl:string):void
{
this.Title = title;
this.Id = id;
this.Name = name;
this.ParentWebRelativeUrl = parentWebUrl;
this.RelativeUrl = parentWebUrl + "/" + name;
}
public setSpItemAsFolder(name:string, relativeUrl:string, type:string):void
{
this.Name = name;
this.Title = name;
this.RelativeUrl = relativeUrl;
this.Type = type;
}
public setListService(ListService:SpListService):void
{
this.listsService = ListService;
}
public GetSubFolders(parentWeb:string): void
{
let hostName = location.protocol + '//' + location.host;
//this.listsService.getFolders(hostName + "/"+ this.ParentWebRelativeUrl +"/_api/web/GetFolderByServerRelativeUrl('" + this.RelativeUrl +"')/folders")
this.listsService.getFolders(hostName + "/"+ parentWeb +"/_api/web/GetFolderByServerRelativeUrl('" + this.RelativeUrl +"')/folders")
.then(listRslt =>
{
for (let item of listRslt)
{
item.ParentWebRelativeUrl = parentWeb;
}
this.subItems = listRslt
});
}
}
你可以添加一個工作的蹲點展示發生了什麼?很難直觀地看到什麼得到了渲染 –
我沒有看到在掠奪者angular2選項。我可以向你發送代碼嗎? –