目前正在编写一个指令,需要将空格作为字符传递给它。 像:
<my-directive exclude-chars=" abc"/>
原来,角度消除了前导空间;但我希望它保留下来。 这样做的任何方式?
编辑:我将指令参数作为字符串传递(使用@,而不是作为变量,使用=)
答案 0 :(得分:8)
我会做一个:
在{{'
和'}}
中包装该属性:
<my-directive exclude-chars="{{' abc'}}"></my-directive>
并使用指令链接函数中的 abc
访问字符串attrs.excludeChars
,包括空格
link: function(scope, element, attrs) {
var excludeChars = attrs.excludeChars;
}
在'
和'
中包装该属性:
<my-directive exclude-chars="' abc'"></my-directive>
然后将值传递给$eval
以获取包含空格的字符串:
link: function(scope, element, attrs) {
var excludeChars = scope.$eval(attrs.excludeChars);
}
注意:通过jQuery / jQlite attr
函数直接访问该属性对Angular来说是非常不友好的,它通过normalization支持不同格式的指令/属性,并强制用户使用指令使用您通过attr
访问的那个。
BTW:自定义HTML元素应在模板中明确显示结束标记。如果你不这样做,我发现浏览器经常使用的DOM不是预期的
答案 1 :(得分:1)
最简单的解决方案之一是使用jqlite attr
函数,如下面的代码。
在你的指令代码中。
link: function(scope, element, attrs){
console.log('>'+element.attr("exclude-chars"));
}