ルータでparamsを使用する必要があります。これにより、2つ(またはそれ以上)の状態間で情報を渡すことができます。例えばUI-ルータの使用を想定すると、あなたはURL文字列内のパラメータに沿って渡すために、このような状態を設定したい:
state('state-one', {
url: '/new?itemId',
templateUrl: 'index-one.html'
})
あなたは状態にこれを追加することで、あなたのコントローラでその変数にアクセスする(または代わりにすることができます、)完全に別個のコントローラファイルを持っている:
controller: function($scope, $stateParams) {
$scope.itemId = $stateParams.itemId;
}
2つの状態の間で移動し、テンプレートに沿ってその情報を渡す:
<a ui-sref="state-one({ itemId: 1 })">State One</a>
同様あなたもでき使用可能なパラメータを持っている状態を設定し、それらの情報に沿って渡す:
state('state-two', {
url: '/two',
templateUrl: 'index-two.html',
params: {
itemId: null,
itemObject: null
}
})
テンプレートのリンクを使用することなく、状態間を移動するには:これは働くだろう、あなたの場合は
$state.go('state-two', { itemId: vm.someId, itemObject: { some: object } });
を:
state('state-three', {
url: '/three',
templateUrl: 'index-three.html',
params: {
array: null
},
controllerAs: 'vm'
})
state-twoのコントローラ(たとえば)はstate-threeに移動し、state-threeの配列を保存して使用します。
$state.go('state-three', { array: $scope.myArray })
これは、$ scope.myArrayが状態2のコントローラの配列に割り当てられていることを前提としています。あなたはparamsの値として 'array'を使用していますので、state-threeのコントローラで再度アクセスすると、$ stateParams.arrayのロジックが実行されます。そのコントローラにあるコントローラ(state-
<div ng-repeat="item in vm.myArray">
に値を格納する機能を記述します。 ng-repeatの – user123
は、配列またはmyArrayを使用する必要があります。 – user123
同じコントローラ内でこれを行う方法。 – user123