【发布时间】:2014-01-22 13:43:43
【问题描述】:
这是我的指令代码:
// Generated by CoffeeScript 1.6.3
(function() {
var autumnDirectives;
autumnDirectives = angular.module('autumnDirectives', []);
autumnDirectives.directive('timeline', function() {
return {
scope: {
timeline: '='
},
templateUrl: 'partials/timeline/_timeline.html',
controller: function($scope, $element, $attrs) {
return console.log($scope.timeline);
},
link: function(scope, el, attrs) {
console.log(el);
return console.log(el.find(".item"));
}
};
});
}).call(this);
我的模板:
<div class="timeline clearfix">
<div class="item" ng-repeat="item in timeline">
<div class="row">
<div class="content">{{ item.content }}</div>
</div>
<div class="row">
<div class="connect_line"></div><div class="connect_line"></div>
</div>
</div>
</div>
由于某种原因,jqlite find 不返回 item 元素(长度为 0) - 或任何与此相关的元素。如果我在链接函数中附加一个元素,那么我可以找到它,否则不会。
当我记录 el 时,它会返回正确的元素,如果我使用 chrome 检查工具冒险进入孩子,我能够找到 .item。
我认为一旦模板准备好就会调用该链接?是这里出了什么问题,还是我不明白什么?
否则一切正常
谢谢
注意:我可以使用 .timeline 类找到层次结构中的第一个 div,但在更深层次上找不到任何东西
【问题讨论】:
-
你在使用 jQuery 吗?
-
是的,我已经包含了 jquery
-
是否包含在angular.js之前?
-
是的,它包含在 angular 之前。
-
可能在链接函数运行时,
timeline仍未填充到外部作用域上。请将console.log(scope.timeline)放入您的链接功能中查看。
标签: angularjs angularjs-directive