在我的一个模板中,我有这段代码:
<h1>Route 1</h1>
<hr/>
<a ui-sref=".list">Show List</a>
<a ui-sref=".thing">thing7</a>
<div ui-view="left"></div>
<div ui-view="right"></div>
当我点击.list
状态时 - 我确实有一个具有相应配置的控制器:
....state('route1.list',
{
url: '/list',
views:
{
'left@route1':
{
templateUrl: 'route1.list.html',
controllerAs: "vm",
controller: function ($scope)
{
this.items = ["a", "b", "c", "d"];
}
},
'right@route1':
{
templateUrl: 'route1.list.html',
controllerAs: "vm",
controller: function ($scope)
{
this.items = ["1", "2", "3", "4"];
}
}
}
})
这很好用,我确实看到两个视图都充满了适当的数据。
现在 - 当我点击.thing
状态时 - 我只想要这个视图:
<div ui-view="right"></div>
要加载数据。
显然我应该使用这段代码:
.state('route1.thing',
{
url: "/thing",
views:
{
'right@route1':
{
templateUrl: 'route3.html',
controllerAs: "vm",
controller: function($scope)
{
this.thing = "I'm aaa";
}
}
}
})
问题
当我在页面上有多个视图时,我只想触摸一个视图(而不是其他视图) - 我必须仍然使用此结构:
.state('route1.thing',
{
url: "/thing",
views:
{
...
}
我的意思是 - 是否有任何允许我将信息应用于特定视图的内容,例如常规格式:
.state('route1.thing', {
url: "/thing",
templateUrl: "route3.html",
applyTo:"right@route1" , // <-- Something like this
controller: function($scope){
....
}
})