我遇到了一个问题,我似乎无法使我的ng-click事件识别与其中一个属性相关联的函数。这是我的代码:
服务:
factory.getContextMenuItems = function(message) {
var items = [];
var href;
href = '#';
items.push({
href: href,
iconClass: "sentIcon",
hasIcon: true,
clickEvent: navigationFactory.navigate(message)
});
return items;
}
主视图 - 与此视图关联的控制器调用上述工厂来获取数据:
<div id="readMessage" class="readMessage" data-ng-model="model.message" role="region" aria-label="Message Content" aria-live="polite">
<div class="senderContextArea" data-webuser-context-menu
data-menu-items="model.message.contextMenu"
data-from-name="{{model.message.from}}"
data-ng-if="model.message.contextMenu.length > 0"></div>
</div>
指令模板:
<ul class="contextMenu" role="menu">
<li data-ng-repeat="item in menuItems">
<a href="{{item.href}}" title="{{item.title}}" role="menuitem" target="_blank" data-ng-click="{{item.clickEvent}}">
<span data-ng-if="item.hasIcon" class="{{item.iconClass}}"></span> {{item.text}}
</a>
</li>
</ul>
指令:
(function(app) {
app.directive('menu', function () {
return {
restrict: 'A',
scope: {menuItems: '=', fromName: '@'},
templateUrl: '/contextMenu.html'
}
});
})(angular.module('app'));
我所有其他属性都正确连接。除了点击事件本身之外我想要的其他所有东西都很好。必须有一个我缺少的步骤。
答案 0 :(得分:0)
你能尝试使用这样的匿名函数包装你的navigationFactory.navigate(message)
:
function(){navigationFactory.navigate(message);}
并且在与item.clickEvent()
没有{{}}