Посмотрите на это, проблема в том, что вы связываете строку вместо объекта, а это значит, что вы на самом деле не получаете преимуществ: Если вы не используете. (Точка)в ваших моделях AngularJS вы делаете это неправильно?
Если вы используете объект в родительском объекте, передавая значение или весь объект, вы увидите, что он работает немного лучше.
$scope.hobbies = [{id:1,name:"Swimming"},{id:2,name:"Reading"}]
, а затем
<ul ng-repeat="n in hobbies">
<li>
<component value="n.name"></component>
</li>
</ul>
или
'<span ng-show="!editing">{{ value.name }} <i ng-click="editing = true" class="glyphicon glyphicon-pencil"></i></span>',
'<span ng-show="editing"><input type="input" ng-model="value.name"><i ng-click="editing = false" class="glyphicon glyphicon-ok"></i></span>',