The most angular way would be to achieve this using data binding (2 way) in an isolated scope:
restrict: 'E',
template: "<input type='text'>",
replace:true,
scope:{
myModel:'='
},
link: function(scope, element, attrs) {
............
and inside that select function:
.bind("fb-select", function(e, data) {
console.log(data);
scope.myModel=data;
});
usage:
<suggest my-model="someModel" .... />
and in your controller $scope:
$scope.someModel="";
You still need to handle the initial binding for that pre-selected model in your directive though, but yea, the cleanest way is 2 way data binding through an isolate scope.
EDIT
These 2 articles are excellent for helping port jquery plugins to angular:
http://rogerz.github.io/blog/2013/09/27/jQuery-to-angularjs/