角度js中相同控制器的两个实例

时间:2016-05-13 13:55:58

标签: javascript html angularjs

我遇到了这个问题(我知道这不是一个好习惯)。我有一个具有分屏的视图。在左侧,您有一个输入字段,在右侧,您可以看到输入字段值。两个方都有相同的控制器,但我使用状态提供程序ui-view属性。

的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-view都有一个单独的(实例?)范围。 如果我在左侧的输入字段中写东西,有没有办法在右侧进行更改?

1 个答案:

答案 0 :(得分:4)

您可以在视图外声明controller个选项,这样只会初始化一次

<强>代码

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