Tôi có hai AngularJS 2,0 phần:"EXCEPTION: Giá trị chỉ thị không mong muốn 'undefined' trên nhìn ra thành phần" trong thành phần lồng nhau
Comment:
import {Component, Injectable, View, Input} from 'angular2/core';
import {Comments} from './comments.component';
@Injectable()
@Component({
selector: 'comment'
})
@View({
templateUrl: 'res/templates/components/comment.component.html',
directives: [Comments]
})
export class Comment {
@Input() comment;
@Input() commentable = false;
}
Comments:
import {Component, Injectable, View, Input} from 'angular2/core';
import {CommentsService} from './../services/comments.service';
import {RouteParams} from 'angular2/router';
import {Comment} from './Comment.component';
@Injectable()
@Component({
selector: 'comments',
providers: [CommentsService]
})
@View({
templateUrl: 'res/templates/components/comments.component.html',
directives: [Comment]
})
export class Comments {
@Input() ID;
public comments;
public commentsService: CommentsService;
public routeParams: RouteParams;
constructor (routeParams: RouteParams, commentsService: CommentsService) {
var self = this;
self.routeParams = routeParams;
self.commentsService = commentsService;
}
ngOnInit() {
var self = this;
if (self.ID !== undefined)
self.comments = self.commentsService.comments[self.ID];
else if (self.routeParams.params['id'] !== undefined)
self.comments = self.commentsService.comments[self.routeParams.params['id']];
else
self.comments = undefined;
}
}
nhận xét.template:
<div class="post">
<div class="author-pic"></div>
<div class="body">
<h2 class="title">{{comment.author.name}} {{comment.author.surname}}</h2>
<h3 class="title">{{comment.publication | date:"MM/dd/yy"}}</h3>
<p>{{comment.body}}</p>
</div>
<comments *ngIf="commentable" [ID]="comment.ID"></comments>
</div>
comments.template:
<div *ngIf="comments !== undefined">
<comment *ngFor="#comment of comments" [comment]="comment" [commentable]="true"></commento>
</div>
Trong mẫu Comments' Tôi có một vòng góc mà in nhiều thành phần bình luận. Trong mẫu của Comment, tôi có một Angular ngIf, nếu var commentable là true, in một thành phần Comments. Khi tôi chạy nó tôi nhận được:
EXCEPTION: Unexpected directive value 'undefined' on the View of component 'Comment'
bạn có thể đăng các mẫu liên quan, và dịch vụ (s)? Tại sao bạn thêm trình trang trí *** @ Injectable *** ở trên các thành phần? – Romain
Rất có thể vì bạn có phụ thuộc vòng tròn. Nhận xét có Nhận xét dưới dạng chỉ thị và Nhận xét cũng có nhận xét dưới dạng chỉ thị. Loại bỏ một trong số những người từ một trong những người khác. –
Nếu tôi xóa một trong số đó, nó sẽ không hoạt động ... @Eric Martinez – Samuele