2014-12-13 76 views
4

如何以jqlite的角度抓取元素的attr數據?如何用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 

什麼想法?

+0

使用'e.target.href'或'e.target.getAttribute( 'href' 屬性)',這取決於是否你想要絕對或相對的鏈接。我仍然想知道爲什麼將_href_屬性分配給非鏈接元素。 – raina77ow 2014-12-13 09:10:21

+0

我得到這個錯誤'錯誤:[$ parse:syntax]語法錯誤:在[HTMLDivElement]]開始的表達式[[object HTMLDivElement]]的第9列處出現[Token'HTMLDivElement'是意外的,期待[]]' – laukok 2014-12-13 09:13:25

+1

' form'變量定義爲控制器函數的本地變量,但您嘗試在模板中使用它。 – raina77ow 2014-12-13 09:16:03

回答

6

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

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

您需要包裝的DOM元素作爲jqLit​​e元素第一:

var form = angular.element(e.target).attr('href'); 
+0

非常感謝你的答案。 – laukok 2014-12-13 10:14:48

+1

不客氣:) – tasseKATT 2014-12-13 10:19:18