我想在指令中覆盖图像src。我尝试了以下,但都没有效果。
app.directive('imgTransform', function () {
return {
retrict: 'A',
link: function (scope, elem, attrs) {
elem.attr('ng-src', 'foo');
attrs.ngSrc = 'foo';
elem.attr('src', 'foo');
attrs.src = 'foo';
}
};
});
链接功能是否在DOM绑定发生之前执行?
我还尝试创建隔离范围并绑定到ngSrc
属性:
scope: {
src: '@ngSrc'
},
然后在链接功能中设置scope.ngSrc
。这也不起作用。
我错过了什么吗?
答案 0 :(得分:1)
您需要在进入链接功能之前对其进行修改。
我建议在控制器函数中,而不是深入挖掘$ compiler。
restrict: "A",
controller: function ($scope, $element, $attrs) {
$attrs.$set('ngSrc', 'someOtherValue');
},
link: function (scope, el, attrs) {...}
这是一个小提琴:http://jsfiddle.net/y7JE9/5/
另外,在链接函数中查找插值时使用$ observe。祝你好运:)