首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >把DOM元素传递到函数的角度范围

把DOM元素传递到函数的角度范围
EN

Stack Overflow用户
提问于 2018-02-21 10:59:11
回答 2查看 187关注 0票数 0

如果我有锚:

代码语言:javascript
复制
<a ng-href="{{model.getUrl(<?>)}}" data-network="twitter">test</a>

以及返回字符串的作用域函数(它不运行于click事件):

代码语言:javascript
复制
$scope.model.getUrl = function(element){
    // How can i get access to the data-network attribute
    switch(element.dataNetwork){
        case "twitter":
        break;
    }
}

如何从这个自由运行的函数中访问数据网络属性?

注:

我之所以没有传递字符串,是因为数据网络需要存在于页面中发生的其他非角度和角度的事情。所以我想我应该劫持它并使用它,而不是重新定义一个字符串,这样就可以有角度了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-21 11:31:07

我建议您创建一个A类型的指令,类似于setUrl

代码语言:javascript
复制
angular
  .module('app', [])
  .directive('setUrl', function() {
    return {
      restrict: 'A',
      link: function(scope, element, attrs) {
        switch(attrs.network){
          case "twitter":
          break;
        }

        // If you need to set the ng-href you can use attrs.$set
        attrs.$set('ng-href', '/your/path/');
      }
    }
  });

在HTML中:

代码语言:javascript
复制
<a set-url data-network="twitter">Twitter</a>
票数 0
EN

Stack Overflow用户

发布于 2018-02-21 11:55:32

如果您对此模板有完全的控制,则应该有:

代码语言:javascript
复制
<a ng-href="{{model.getUrl(type)}}" data-network="{{type}}">test</a>

并在控制器中定义type

如果type不更改,则可以使用一次绑定:

代码语言:javascript
复制
<a ng-href="{{::model.getUrl(type)}}" data-network="{{::type}}">test</a>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48904177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档