我有两个ui路由状态S1
和S2
。 S1是一种查询状态,具有查询某些数据的形式。 S2是结果状态,其中我显示我从S1状态获得的数据。
现在我想在S1
结果状态中提供S2
(查询状态),以便用户可以在S2
状态本身修改查询。
如何在S1
州访问S2
模板和控制器?
代码:
$stateProvider
.state('form', {
url: '/form',
templateUrl: '/modules/form',
controller: 'formController'
})
.state('result', {
url: '/result',
templateUrl: '/modules/result',
controller: 'resultController'
})
我想在form
州内使用result
州。
注意:我是角色新手,请为我提供一些类似场景的消息。
答案 0 :(得分:0)
这在某种程度上是一个主观的答案,但是使用ui-router非常多,我认为它非常适合处理各种路线,但是如果你想在不同的页面上使用模块化可重复使用的部件,我可以使用ui-router。声称你只需要使用角度的原生指令就可以轻松过时。
app.directive('someform', function() {
return {
restrict: 'E',
templateUrl: 'form.html',
controller : 'formController'
};
});
http://plnkr.co/edit/JynPLQQgE1UqVMBOLvdS?p=preview追求完整性。 (您可能需要注意,在此示例中,ui-router完全是多余的。)
至于控制器之间的通信,一种方法是使用$broadcast
,$emit
和$on
。但我更喜欢保存结果的服务,并将其注入两个控制器以便于访问。
app.factory('Results', function(){
results = [{value:'aaaa'},{value:'bbb'}, {value:'cccc'}];
return {
get : function(){
return results;
},
add : function(value){
results.push(value);
}
}
})