2016-08-22 82 views
-2

我無法訪問由指令創建的app.js之外的dom元素,應該怎麼做?請建議最好的辦法,因爲我是新來angularjs如何從外部觸發指令模板內的元素?

app.directive('myMenu', function() { 
    return { 
     restrict: 'E', 
     transclude: true, 
     template: ' <div class="sticky-wrapper"><div class="sticky-menu"> menu</div></div>' 
    }; 
}); 

JSFiddle Link

+0

你想用它們做什麼?該元素不會在那裏執行JavaScript。添加到您的問題更多關於你想要做的事情。通常你會有一個「鏈接」功能屬性的指令,操縱在我的實際項目中的dom – jumpdart

+0

,該指令是爲菜單欄創建的,我需要「粘性-wrapper「dom在我的main.js中初始化sticky –

+0

如果你想在dom元素上執行javascript,添加一個鏈接屬性和一個你想要的功能。對於指令定義是 – jumpdart

回答

1

你曾經通過$(document).ready(function() {試圖象下面這樣:

http://jsfiddle.net/dwyu78Ln/4/

$(document).ready(function() { 
    var orgElementPos = $('.sticky-wrapper').offset(); 
    alert(orgElementPos.top); 
}) 
0

嘗試是這樣的:

var app = angular.module('app',[]); 

app.directive('myMenu', function() { 
    return { 
     restrict: 'E', 
     transclude: true, 
     template: ' <div class="sticky-wrapper"><div class="sticky-menu"> menu</div></div>', 
    link: function(element){ 
      var orgElementPos = $('.sticky-wrapper').offset().top; 
     alert(orgElementPos); 
    } 
    }; 
}); 
+0

不知道你想要做些什麼,但通常這是你會做的。另外我建議熟悉默認的角度API,所以你不需要使用jQuery。 – jumpdart