我正在尝试使用属性而不是自定义指令中的元素。
<div dotdot>{{description}}</div>
我创建了“dotdot&#39;用于检查描述长度的指令。
代码如下:
.directive('dotdot', function(){
return {
restrict: 'A',
transclude: true,
replace: true,
scope:true,
link:function(scope,ele,attr){
console.log(ele[0].innerHTML);// shows blank
console.log(ele.html()); // shows blank
}
}
})
我在控制台中没有得到任何东西(console.log(ele [0] .innerHTML)),因为我想要进一步操作文本内容的长度。
答案 0 :(得分:0)
首先,您将指令限制为“E”(E代表元素)。这意味着只有<dotdot>{{ description }}</dotdot>
才有效。您提供的HTML会将dotdot
显示为属性。因此restrict: 'E'
应为resrict: 'A'
(A代表属性)。
其次,为什么不通过它的范围将描述的值传递给指令?类似<div dotdot="description"></div>
的内容。 $watch
更改会更容易,并采取相应的行动。另外,如果您将代码保存在这样的链接函数中,则可能会更改您的console.log将输出{{description}}
,因为摘要周期尚未运行。 (这不是你想要的)。