2016-05-13 2 views
3

Я столкнулся с этой проблемой (я знаю, что это не очень хорошая практика). У меня есть одно представление, которое имеет разделенный экран. На левой стороне есть поле ввода, а с правой стороны вы видите значение поля ввода. Обе стороны имеют один и тот же контроллер, но я использую провайдера состояния с атрибутом ui-view.два экземпляра одного контроллера в угловых js

index.html

<div class="col-sm-6" ui-view="left-side"> 
<div class="col-sm-6" ui-view="right-side"> 

app.js

$stateProvider.state('/',{ 
     url: '/', 
     views:{ 
      'left-side': { 
       templateUrl: 'leftside.html', 
       controller: 'testController' 
      }, 
      'right-side': { 
       templateUrl: 'rightside.html' 
       controller: 'testController' 
      } 
     } 

rightside.html

<div class="container"> 
    <p>{{item}}</p> 
</div> 

leftside.html

<div class="container"> 
    <input ng-model="item" /> 
</div> 

и в testController.js

app.controller('testController, function($scope){ 
    $scope.item = 'some text value'; 
}); 

Я знаю, что каждый из Ui-зрения имеет индивидуальный (экземпляр?) Сферы. Есть ли способ внести изменения с правой стороны, если я что-то напишу в поле ввода слева?

ответ

4

Вы можете объявить controller вариант вне взглядов, так что будет инициализировать только один раз

код

$stateProvider.state('/',{ 
    url: '/', 
    controller: 'testController', 
    views:{ 
     'left-side': { 
     templateUrl: 'leftside.html' 
    }, 
     'right-side': { 
     templateUrl: 'rightside.html 
    } 
} 
Смежные вопросы