我的指令工作正常,显示所有趋势标签。该指令在$ scope对象中查找trendingTag属性。所以,我有范围:真正角度指令,范围:真,并将属性添加到范围
app.directive('ngTrending', function() {
return {
restrict: 'E'
, transclude: true
, replace: true
, scope: true
, templateUrl: '/resources/ngViews/trending.html'
};
});
现在我想基于指令属性可以根据选项来配置它(如只读=“真”)。并基于attirbute这样THT
<ng-trending></ng-trending>
生成启用行动的趋势标签能够有条件地更改模板的次要方面。虽然
<ng-trending read-only="true"></ng-trending>
生成标签,但禁用了点击。如何在指令上对范围进行编码,以便我仍继承托管该指令的控制器的范围,例如
<div ng-controller="fancy">
<ng-trending></ng-trending>
</div>
现在就是这种情况(在指令模板的内部,我引用了fancyContrilers $ scope.trendingTags属性)。但是在指令的模板中,我想引用$ scope中的“只读”。
它只是在我看来,我正在接近这完全错误的,我可能想要通过趋势标签以及...我很困惑 - 请帮助理清我!
谢谢。
如果你不想改变你的指令的范围,我认为你可以在'link'函数中检查属性('attrs.readOnly'会给你一个字符串值)。你可以使用'scope。$ eval(attrs。readOnly)'或'$ parse'来进行单向和双向绑定。 – jpmorin
@ jpmorin的建议对我很好。这不是要养成的习惯,尽管在某些情况下它可以有效。 –