【发布时间】:2015-07-16 17:27:04
【问题描述】:
我正在开发一个团队计划管理器,用户可以在单击主体并将其拖到画布上时创建一个图块(=任务)。我正在尝试将创建的任务链接到正确的用户。在屏幕的左侧,我有一个用户列表。现在任务只是随机放置在网格上。网格逻辑由行和列组成。所以我想我首先确定每个用户的y位置,然后将任务上的位置链接到用户。
我正在使用 Angular 和 Node 来创建这个团队规划器
通过自定义指令我获得了用户位置(我的 app.js 文件的部分代码):
$rootScope = {};
$rootScope.users = [];
contentEditor.directive('custom', function($document) {
return {
restrict: 'E',
scope: true,
link: function(scope, element, attrs) {
var mail = $(element[0]).attr('data-email');
console.log("mail ", $(element).attr('data-email'));
$rootScope.users.push({"top ":element[0].offsetTop, });
console.log(scope)
console.log("Y positon of a user circle " + element[0].offsetTop);
}
}
});
部分html代码:
<!-- START SIDEBAR -->
<div id="sidebar" class="md-whiteframe-z4">
<img id="logo" src="images/logo.png" alt="" >
<div class="userList">
<ul>
<li ng-repeat="user in userInfo" id="userPos" class="circular" data-email="{{user.email}}"><p class="initials"><custom></custom>{{user.initials}}</p></li>
</ul>
</div>
</div>
<!-- END SIDEBAR -->
要更好地了解我的应用,请查看此链接 -> http://gyazo.com/2e011b0e38bc1e36c198bbaa322ad06c
我的问题是如何从我的数据属性访问数据电子邮件(请参阅列表项)。现在,当我尝试访问它时,它会返回 undefined。
【问题讨论】:
-
你试过
$(element[0]).data('email')吗? -
您是否有理由不能将其声明为范围的一部分?
scope: { dataEmail: '=' },然后你可以通过$scope.dataEmail在你的指令中访问它(虽然我只是称之为电子邮件) -
@alisabzevari,我尝试了您的建议并记录了它,但返回未定义
-
@Amicable,我将范围从 scope: true 调整为 scope: { email: '=' } 但没有变化...
标签: javascript angularjs node.js