我有一个非常基本的指令,该指令包含一个模板。在模板中有一个color
变量来设置加载内容的背景颜色。
app.directive('percentageSquare', function(){
return {
restrict: 'E',
templateUrl: '/templates/dashboard/charts/PercentageChart.html'
};
});
我有没有办法在我的指令中设置颜色?我想的可能是这样的:
<percentage-square color="red"></percentage-square>
模板看起来像这样:
<div style="background-color: {{color}}">
<h1>I am a cool color!</h1>
</div>
正如我所看到的那样,我能找到的是控制器中设置的值(在指令之外),有没有办法可以通过在HTML中传递值来实现这一点?
答案 0 :(得分:1)
使用isolate scope。指令的scope
属性意味着您绑定了指令外部的某些值。或者您可以将其视为传递给指令的parameters
。
检查JSFiddle工作演示:http://jsfiddle.net/0547gjzs/1/。
app.directive('percentageSquare', function(){
return {
restrict: 'E',
scope: {
color: '@'
}
templateUrl: '/templates/dashboard/charts/PercentageChart.html'
};
});
HTML:
<percentage-square color="red"></percentage-square>
答案 1 :(得分:0)
如果您访问指令的颜色属性,请使用范围。
app.directive('percentageSquare', function(){
return {
restrict: 'E',
scope : {
color : "@"
},
/*templateUrl: '/templates/dashboard/charts/PercentageChart.html'*/
template : "<div style='background-color : {{color}}'><h1>I am a cool color!</h1></div>"
};
});
使用相同的方法来使用templateUrl文件。
这里是您的自定义指令定义
<percentage-square color="red"></percentage-square>