Angularjs (初学者)如何处理卷轴上的棱角方式
我在jquery中创建了这个流畅的菜单: 很简单,但我想用有角度的方式来做,但我不知道如何攻击它 如果我执行指令Angularjs (初学者)如何处理卷轴上的棱角方式,angularjs,Angularjs,我在jquery中创建了这个流畅的菜单: 很简单,但我想用有角度的方式来做,但我不知道如何攻击它 如果我执行指令 <div stackables class="stackables"> 该指令如何知道要测量和修改哪些“可堆叠”元素 如果我在子级执行指令 <div stackable class="stackable"> 它是如何知道它的兄弟可堆叠的? 还有,如何避免订阅超过1个滚动事件 这是一个普通的初学者问题。我希望stackoverflow不会
<div stackables class="stackables">
该指令如何知道要测量和修改哪些“可堆叠”元素
如果我在子级执行指令
<div stackable class="stackable">
它是如何知道它的兄弟可堆叠的?
还有,如何避免订阅超过1个滚动事件
这是一个普通的初学者问题。我希望stackoverflow不会太模糊。您好,通常在创建指令时,您可以访问该指令所附加的DOM元素。它是link函数的第二个参数,如下所示:
link: function (scope, elem, attrs) //elem is the dom element
现在,您知道您可以做任何您想做的事情,将指令放在父节点或子节点上。但在我看来,将指令放在父节点上将是一种“有角度的方式”。要回答您的问题:
该指令如何知道要测量和分析哪些“可堆叠”元素
修改
您需要熟悉(在文档中查找transclude)。基本上,在使用transclude时,DOM元素的内部子元素将被转发到指令。例如:
// Template
<stackables>
<li class="stackable">Item 1</li>
<li class="stackable">Item 2</li>
...
// Directive
directive('stackables', function() {
return {
restrict: 'E',
transclude: true, <- Here it is
scope: {},
template: '<ul class="stackables" ng-transclude></ul>', <- do not miss the ng-transclude here
link: function (scope, elem) {
//1. elem is the ul dom node
//2. You can add an event listener from here
//3. You can find the li dom with something like
//elem.find('li');
...
//模板
第1项
第2项
...
//指示
指令('stackables',function()){
返回{
限制:'E',
是的,