我遇到了这个问题(我知道这不是一个好习惯)。我有一个具有分屏的视图。在左侧,您有一个输入字段,在右侧,您可以看到输入字段值。两个方都有相同的控制器,但我使用状态提供程序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都有一个单独的(实例?)范围。 如果我在左侧的输入字段中写东西,有没有办法在右侧进行更改?
答案 0 :(得分:4)
您可以在视图外声明controller
个选项,这样只会初始化一次
<强>代码强>
$stateProvider.state('/',{
url: '/',
controller: 'testController',
views:{
'left-side': {
templateUrl: 'leftside.html'
},
'right-side': {
templateUrl: 'rightside.html
}
}