我试图让我的视图模板每10分钟更新一次。在状态配置中使用此设置不起作用:
.state('home', {
url: '/',
controller: 'landing',
templateProvider: function($templateFactory, $interval) {
var templateId = 0;
return $interval(function(){
var template = templateId % 2 == 0 ?
'landing-primary.html':'landing-secondary.html';
templateId++;
return $templateFactory.fromUrl('views/templates/' + template);
}, 600000);
}
})
实现此类工作的最佳方式是什么?
答案 0 :(得分:1)
templateProvider
选项应该是一个函数,它返回一个html字符串或一个用html字符串解析的promise。它主要存在,因此您可以生成以某种方式使用$ stateParams的html。
您尝试做的事情通常不会通过路线/州定义来完成;你所描述的是应该在指令或控制器中的逻辑。虽然没有更多关于你想要实现什么的更多信息,但很难肯定地说,这听起来像你真正需要的是一个单一的“登陆”页面,两个模板的内容除以一个ng-switch指令被绑定到模型属性。然后在您的控制器中,您将设置$ interval以每10分钟更改一次该模型属性。
或者,也许你想要的是两种状态,在这种情况下,这对状态将在其相应的控制器中具有切换到另一状态的$ timeout。