我想将值传递给我的指令而不隔离其范围。
我的指令有一个链接函数来获取属性的值:
link: function(scope, element, attrs, ctrl) {
scope.myAttributeValue = attrs.myAttribute;
}
我想做
<directive my-attribute="{{true}}"></directive>
当我将布尔值传递给my-attribute
时,它会转换为字符串。
如何将布尔值传递给my-attribute
?
答案 0 :(得分:1)
使用scope.$eval
:
app.directive("myDirective", function(){
return function linkFn(scope,elem,attrs) {
var x = scope.$eval(attrs.myDirective);
console.log(x);
console.log(typeof x);
}
});
HTML
<div ng-app="myApp">
<p my-directive="true"></p>
</div>
$eval() method将字符串计算为Angular Expression并保留该类型。
避免使用插值(双花括号{{true}}
),因为它会将角度表达式转换为字符串。
答案 1 :(得分:0)
尝试将值与布尔值进行比较,值将以布尔值转换:
例如
scope.myAttributeValue = attrs.myAttribute == true;
console.log(typeof scope.myAttributeValue);
console.log(scope.myAttributeValue);
希望有所帮助!