Html 如何在多个ui视图中只更改一个。不改变状态
在我的HTML中,我有三列,其中我呈现了3个不同的HTML模板Html 如何在多个ui视图中只更改一个。不改变状态,html,angularjs,angular-ui-router,Html,Angularjs,Angular Ui Router,在我的HTML中,我有三列,其中我呈现了3个不同的HTML模板 <div id="col1" ui-view="col1"></div> <div id="col2" ui-view="col2"></div> <div id="col3" ui-view="col3"></div> 我的问题是,如何在不更改状态的情况下,将col3的templateurl从ThirdTemplate.html更改为NewTempla
<div id="col1" ui-view="col1"></div>
<div id="col2" ui-view="col2"></div>
<div id="col3" ui-view="col3"></div>
我的问题是,如何在不更改状态的情况下,将col3
的templateurl
从ThirdTemplate.html
更改为NewTemplate.html
要回答这个问题:
我的问题是,如何在不更改状态的情况下将col3的templateurl从ThirdTemplate.html
更改为NewTemplate.html
,
这是不可能的。这是不打算也不支持的
UI路由器背后的思想是在状态之间导航(即使不使用url,$state.go()
)。一旦找到/解析状态到,其所有设置都将转换为实现(controllerProvider
返回用于查找控制器的控制器或字符串,templateProvider
返回模板等)
之后,状态稳定且稳定。我们可以使用一些其他角度特征(指令)来操纵DOM,但除非我们更改状态
,否则其部分是固定的
在这种情况下,我们可以接受状态更改(包括当前状态重新加载),我们可以从模板提供程序中获利:
Thirdtemplate.html
检查此链接:我刚刚检查了,但不幸的是,我仍然不知道如何操作。您能帮我指出一下吗?@Ved我对这一点还不熟悉,但当我查看他们的示例时,我认为他们正在使用ui-sref
更改状态。我想做的是做一些不同的事情,我想保持相同的状态,只是动态更改视图(templateURL)。您可以使用ng show和ng hide来更改视图吗?@Ved这是一种方法,但是通过这样做,我将在激活状态时加载我的所有模板,并且我将拥有很多这些模板,这就是我寻找动态更改它们的原因。嗨@Naresh,谢谢你的回答,但是你能补充几句解释吗?只有代码的答案并不总是不言自明的:)在Thirdtemplate.html页面中,使用ng include指令包含一个新的html(NewTemplate.html),根据您可以隐藏以前html的视图的条件,即在templateUrl(Thirdtemplate.html)@Nersh中-很好,就在那里;)只需编辑您的答案,将您在评论中所写的内容添加到其中!
$stateProvider
.state('demo',{
views: {
'col1': {
templateUrl: 'FirstTemplate.html'
},
'col2': {
templateUrl: 'SecondTemplate.html'
},
'col3': {
templateUrl: 'ThirdTemplate.html'
}
}
})
<div ng-include="'NewTemplate.html'"></div>
<div ng-hide="'NewTemplate.html'">Thirdtemplate.html</div>