我做了一个指令来调用博客门户的相关帖子。它应该通过传递阅读帖子的标签来工作,就像一个名为"标签"的属性。但是当我尝试这样做时,指令返回文字内容而不是变量值。
<!-- Here works fine -->
<related-posts labels="post.labels"> {{ labels }} </related-posts>
// Here my issue
app.directive('relatedPosts', function ($http) {
return {
restrict: 'E',
templateUrl: 'app/components/templates/related-posts.html',
scope: {
labels: '='
},
controller: function($scope, $element, $attrs) {
console.log($attrs['labels']); // returns "post.labels" instead "Label 1, Label 2, etc..."
}
}
});
答案 0 :(得分:2)
请访问此类变量。
说明:您已正确设置了范围,但您使用$attrs.labels
只会将标签值作为文本访问,因此您获得了post.labels
在范围内,您需要像$scope.labels
<!-- Here works fine -->
<related-posts labels="post.labels"> {{ labels }} </related-posts>
// Here my issue
app.directive('relatedPosts', function ($http) {
return {
restrict: 'E',
templateUrl: 'app/components/templates/related-posts.html',
scope: {
labels: '='
},
controller: function($scope, $element, $attrs) {
console.log($scope.labels);
}
}
});