Я приготовил маленькую скрипку и сварил ее до минимума:
http://jsfiddle.net/lpeterse/NdhjD/4/
<script type="text/javascript">
angular.module('app', ['ui.bootstrap']);
function Ctrl($scope) {
$scope.foo = "42";
}
</script>
<div ng-app="app" ng-controller="Ctrl">
1: {{foo}}<br />
2: <input ng-model="foo" />
<tabs>
<pane heading="tab">
3: {{foo}}<br />
4: <input ng-model="foo" />
</pane>
</tabs>
</div>
В начале все представления ссылаются на модель Ctrl.foo
.
Если вы меняете что-то на входе 2:
, он правильно обновляет модель, и это изменение распространяется на все виды.
Изменение чего-либо на входе 4:
влияет только на представления, включенные в ту же область. Он ведет себя как область, как-то раздвоенная. Впоследствии изменения от 2:
больше не отражаются на вкладке.
Я прочитал документы angular по директивам, областям и заключению, но не смог найти объяснения этого нежелательного поведения.
Буду благодарен за любые намеки: -)