2017-12-05 6 views
2

レポートパラメータをURLの一部にしたいが、モデルはオブジェクト[{}、{}]の配列なので、これをstateParamに渡すと、URLがエンコードされます([、{などの数字で置き換えられます)ので、読みやすくなりません。

Exa。現在、私は$を渡しています

$scope.models = [{}, {}]; 

<div classs="" ng-repeat="each_model in models"> 
<input class="" model="each_model.name"> Name 
<input class="" model="each_model.class"> Class 
<input class="" model="each_model.city"> City 
</div> 

は、パラメータに完全なデータを渡すことによって、$ stateParamsにscope.models:

$state.go('report', {parameters: models}); 

==私のアプリ

は、私はこのような形式のものがあります。 js

.state('report', { 
    url: '/report?parameters', 
    templateUrl: 'views/class_report.html', 
}) 

どのようにデータをURLに渡すことができますか?

答えて

1

をapp.js:

.state('report', { 
    url: '/report?name&class&city', 
    templateUrl: 'views/class_report.html', 
}) 

ここで、次のようにURLを渡すことができます: www.example.com/?name=abc,cde,efg &クラス= 5,6,7 &市=のX、Y、あなたが受け取るあなたのコントローラでのz

次の状態のparams:

var test = $stateParams // {name: "abc,cde,efg", class="5,6,7", city="x,y,z"} 

この値をマッサージして、名前、クラス、都市の予想されるマッピングを受け取ることができます。

var model = []; 
var all_name = test.name.split(","); // ['abc', 'cde', 'efg'] 
var all_class = test.class.split(",").map(Number) // [5,6,7] 
var all_city = test.city.split(",") // ['x','y', 'z']; 


for(var i=0; i < all_name.length; i++){ 
    model[i] = {}; 
    model[i].name = all_name[i]; 
    model[i].class = all_class[i]; 
    model[i].city = all_city[i]; 
} 

console.log(model); // [{name: 'abc', class:5, city: 'x'}, .. ] 
+0

解決策のように思われるので私は答えを受けましたが、私はより良い解決策を受け入れるために開いています – kaounKaoun

0

「パラメータ」に入力する内容を確認してください。

$state.go('class_report', {parameters: models}); 

モデル

内のオブジェクトを期待するとあなたに私の知る限り、これを達成するための直接的な方法はありません知っているが、あなたはこの試みることができる

.state('report', { 
    url: '/report:parameters', 
    templateUrl: 'views/class_report.html', 
    params: { 
       parameters: "some defaulr" 
      } 
    }) 
+0

私は既にこれをやっていると思いますが、モーダルはオブジェクトであるため、ユーザーがwww.example.com/?parameters=[{a:1,b:test},{a: 3、b:test1}]をwww.example.com/?parameters%3D%5B%7Ba%3A1%2Cb%3Atest%7D%2C%7Ba%3A3%2Cb%3Atest1%7D%5D – kaounKaoun

+0

に設定するURLに表示されます。 – kaounKaoun

関連する問題