Реализовал на скорую руку пока вот такую директиву:
function ($filter) {
return {
scope: {
master: '@',
slave: '@',
filter: '@',
filterAttr: '@'
},
link: function (scope, element, attr) {
if (typeof attr.master != 'string' || typeof attr.slave != 'string')
return;
scope.$parent.$watch(attr.master, function(val){
if (val){
if (attr.filter){
try{
val = $filter(attr.filter)(val, attr.filterAttr);
}catch(e)
{}
}
scope.$parent.$eval(attr.slave+ "='" + val + "'");
}
});
},
restrict: 'A'
};
}
Соответственно в шаблоне так задаю:
<input type="text" readonly data-transfer-value data-master="prop1.prop1_1.prop1_2"
data-slave="prop2.prop2_1.prop2_2"
data-filter="somefilter"
ng-value="prop1.prop1_1.prop1_2 | somefilter" />