【问题标题】:Angularjs set href does not work from directiveAngularjs set href 不适用于指令
【发布时间】:2016-03-04 04:06:53
【问题描述】:

所以我写了一个指令,将应用于这样的链接标签:<a href="..." replace-link"></a>。该指令所做的是检查一些东西,然后修改/替换/删除 href。它还做了一些额外的事情,所以我也不能将 ng-href 用于我的目的。

该指令包含以下代码:

myApp.directive('replaceLink', function () {
return {
    link: function (scope, element, attrs) {
        attrs.$set('href', attrs.href + 'REPLACED!');
    }
};
});

但似乎不起作用。将其更改为类似

attrs.$set('newhref', attrs.href + 'REPLACED!');

稍后检查源代码,我可以看到它有效并且设置了新属性。为什么我不能设置“href”属性?

【问题讨论】:

    标签: angularjs angularjs-directive href


    【解决方案1】:

    原来的问题是最初的 html-link 被绑定到一个角度变量:

    <a href="some-link/{{variable}}" replace-link>
    

    应用指令和绑定到变量(从而改变链接)现在是竞争/竞争条件。

    我的解决方案是使用不同的属性来绑定,并根据需要将指令从 this 复制到 href 属性(仅当链接不应为“未设置”时)。

    有点难以解释,所以我创建了一个 jsfiddle 来进一步说明这一点: http://jsfiddle.net/akg7yd4f/3/

    【讨论】:

      猜你喜欢
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-09
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多