我正在开发一个电子邮件模块,我将插入未来的项目中。我有三个指令:我有一个消息列表指令(显示来自主题和日期的基本信息),一个摘要指令(只显示所需信息的可点击链接(例如正文)),然后是详细指令(显示完整的电子邮件视图)。
我遇到的挑战是尝试将所有三个组合在一起,通过控制器使用相同的数据。本质上我想通过控制器向顶级指令(list指令)显示一个模型,然后该模型中的信息应该可以在嵌套指令视图中使用,但我不想更改属性这些嵌套指令。
list指令---> summary指令(嵌套在list指令中) - > detail指令(可通过summary指令中的click事件访问)
这是父指令:
messagingApp.directive('MessageList', ['$log', function ($log) {
'use strict';
return {
templateUrl: 'directives/messagelist.tmpl.html',
scope: {
messages: '=',
fromWho: '=',
subject: '=',
date: '=',
details: '=',
archiveMessage: '=',
messageStatus: '=',
messagePriority: '=',
markAs: '&',
checkPriority: '&',
readMessage: '&'
}
};
}]);
然后在我看来,这些是我想要传递给嵌套指令的属性(可用于所有三个指令):
<div ng-repeat="msg in message.allMessages>
<message-list messages="msg" message-status="msg.status" message-priority="msg.priority" from-who="msg.from" subject="msg.subject" date="msg.date" details="msg.body" archive-message="archiveMessage(msg)" mark-as="markAs(msg)" check-priority="checkPriority(msg)" read-message="readMessage(msg)"></message-list>
</div>
在该指令的模板中,我引用了其他指令。
有一种简单的方法吗?如果措辞不好,我道歉。我是Angular的新手,我一直在研究这个问题,但没有运气。也许我写错了。
提前感谢您的帮助。