我正在尝试从角度(v1.2.28)指令中删除href或ng-href属性
当网址没有字符串插值时,它可以正常工作。
你能帮我解决这个问题吗?
我刚刚在这里制作了一个jsfiddle http://jsfiddle.net/gfvewv5u/1/
angular.module('ui.directives', []);
angular.module('ui', ['ui.directives']);
angular.module('ui.directives', []).directive('uiTool',
function() {
return {
restrict: 'EAC',
require: '?ngModel',
link: function($scope, element, attrs, controller) {
var controllerOptions, options;
attrs.$set('href', null);
element.removeAttr('href');
element.text('iamfoo for what');
}
};
});
angular.module('myApp', ['ui.directives'])
.controller('testCtrl', function($scope){
$scope.val = 1;
});
和HTML
<div ng-app="myApp">
<div ng-controller="testCtrl">
<a ui-tool href="/test/ts/{{val}}" >Link need to be removed</a>
<a ui-tool href="/test/ts" >Link remove</a>
</div>
</div>
根据我的例子,第一个链接仍然得到了href 而第二个链接则是
答案 0 :(得分:4)
您需要销毁具有绑定值的元素的范围。 Angular在内部跟踪这些绑定,并将重置href。
element.scope().$destroy();
像这样:
link: function($scope, element, attrs, controller) {
element.scope().$destroy();
element.removeAttr('href');
element.text('iamfoo for what');
}
更新fiddle