我需要在我的指令的templateUrl函数中读取attr的值。
<my-dirc type="type"></my-dirc>
my-dirc:
return {
scope : {
type : =
},
templateUrl: function(elem, attrs) {
console.log(attrs.type);
}
}
然而,控制台返回&#34;键入&#34;只是而不是类型的值。 我也尝试过做
<my-dirc type="{{type}}"></my-dirc>
my-dirc :
return {
scope : {
type : @
},
templateUrl: function(elem, attrs) {
console.log(attrs.type);
}
}
现在,console.log为我提供了{{type}}。
如何获取类型的值?
答案 0 :(得分:0)
您无法访问scope
内部templatUrl
功能的template
。因为在创建控制器范围之前首先评估templateUrl
/ attribute
函数,这就是您在属性中获取原始值的原因。如果您在ng-include
内传递了硬编码值,那么只有您可以检索内部函数。
此问题只能使用templateUrl: function(elem, attrs) {
return '<div ng-include="type? \'template\'+type+\'.html\': \'\'"></div>`
}
public class PaletteColor
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ColorId { get; set; }
[MaxLength(10)]
[Index("ColorCodeIndex", IsUnique = true)]
public string ColorCode { get; set; }
public int ColorInt { get; set; }
}
答案 1 :(得分:-2)
你不需要在表达式中写入类型 试试这个
<my-dirc type="type"></my-dirc>
DIR:
return {
scope : {
type : '=type'
},
templateUrl: '.html'
'link' : function(elem, attrs) {
attrs.$observe('type', function (obs) {
console.log(obs);
})
}
}