2016-08-22 79 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