Передача объекта в директив

Передавать можно через scope.
Если scope изолированный, то есть несколько вариантов. В объекте scope, в качестве имени свойства слева указывается переменная в директиве, а справа название атрибута DOM c одним из трех символов в начале: @,=,&.
Если не указывать имя атрибута, тогда оно будет равно имени переменной.
Префикс "@" означает, что локальной переменной будет присвоено значение атрибута
Префикс "=" означает, что в атрибуте передается уже не строчка, а имя некоторой переменной в текущем Scope. И локальная переменная будет напрямую с ней связана. То есть изменения переменной как внутри директивы, так и вне отразятся и там, и там.
Префикс "&" предполагает, что атрибут содержит некое выражение. К примеру, «a+b». И теперь локальная переменная становится функцией, в которую можно передавать параметры. Параметры передаются в объекте, ключами которого выступают имена переменных в функции.

1