我原本不打算用ui-router进行这个项目(2天前刚刚了解它),所以我对此很新。
我对这个问题的看法是:
图像列表的模板,使用ng-repeat显示,并从控制器中调用的服务获取img-src。该服务从json文件获取源。
图像编辑器的模板。此控制器应获取在图像列表中单击的图像的图像源。
如何将图像源从一个状态(图像列表)传递到另一个状态(图像编辑器)?
当我假设我不使用ui-router及其状态时,我正在使用服务来做到这一点。我如何处理各州?
答案 0 :(得分:3)
所以,我发现了一种简单有效的数据传递方式,这对我所有的案例都有效。 (包括与原问题中提到的情景不同的情景)
在第一个状态state1的控制器中,我可以调用函数
$state.go('state2', {id: self.value} );
在state2中,我可以通过以下代码获取值:
this.state2value = $state.params.id;
因此可以将value
从一个状态传递到另一个状态,并通过状态参数检索它。
注意:你应该将$ state和$ stateParams注入两个控制器。
答案 1 :(得分:1)
我认为您可以将图像ID从状态1传递到状态2,并将其置于状态2控制器中:
$stateProvider
.state('state', {
url: "/test/:id",
templateUrl: 'template.html',
controller: function ($stateParams) {
console.log($stateParams.id);
}
})
以及第一页ui-sref="state({id:42})"
答案 2 :(得分:1)
服务似乎仍然是您在两个州之间共享信息的最佳选择。如果您需要服务中的任何状态信息,您可以将$ state注入其中:
......
.service('SomeService', [
'$state',
function ( $state ) {
.......