4

如何使用 jqlite 以角度获取元素的 attr 数据?

html,

<button ng-click="loadForm($event)" href="form.php">Load Directive Form</button>
<div data-my-form></div>

角,

     app.directive('myForm', function() {
        return {
          controller:function($scope){
            $scope.isLoaded = false;
            $scope.loadForm = function(e){

                console.log(e.target.attr('href')); // error 

                var form = e.target.attr('href'); // error

                $scope.isLoaded = true;
            }
          },
          template: '<div><div ng-if="isLoaded" ng-include="'+ form +'" ></div></div>',
          link:function(scope, element) {

          }
        }
    });

我得到这个错误,

TypeError: e.target.attr is not a function

有任何想法吗?

4

1 回答 1

6

attr()是 jqLit​​e 元素上可用的方法。

e.target是对 DOM 元素的引用。

您需要首先将 DOM 元素包装为 jqLit​​e 元素:

var form = angular.element(e.target).attr('href');
于 2014-12-13T10:01:20.290 回答