私は、ナビゲーションに状態の変更を引き起こす多言語リンクが含まれているアプリケーションを実行しています。UI-Routerですべての状態変更で配列が重複することを解決しました
私は、実行中の問題は、ある言語から別の言語へのすべての状態変更で、状態解決から来る配列が重複してしまうことです。例えば
:
- まず負荷= 8つの項目
- まず状態変化= 16の項目
- 第二の状態変化= 24の項目
- ...私は「
veはPlunker to replicate the issueを作成しました。
ここに私の状態のコードは次のとおりです。
.config(function($stateProvider) {
$stateProvider.state('fair', {
url: '/fair/{fair}',
resolve: {
fair: function(SearchService, $stateParams) {
var string = $stateParams.fair.replace(/-/g , "");
var finalstring = string.replace(/liste/g , " ");
return SearchService.getAllExhibitors(finalstring);
}
},
views: {
'header': {
templateUrl: 'header.htm',
controller:'appCtrl'
},
'main':{
templateUrl: 'fair.htm',
controller: 'appCtrl'
}
}
})
.state('fairde', {
url: '/de/fair/{fair}',
resolve: {
fair: function(SearchService, $stateParams) {
var string = $stateParams.fair.replace(/-/g , "");
var finalstring = string.replace(/liste/g , " ");
return SearchService.getAllExhibitors(finalstring);
}
},
views: {
'header': {
templateUrl: 'headerde.htm',
controller:'appCtrl'
},
'main':{
templateUrl: 'fairde.htm',
controller: 'appCtrl'
}
}
})
や工場:
.factory("SearchService", function($http, $q) {
var service = {
flatexhibitors : [],
datafairs : [],
getAllExhibitors : function (wop) {
var deferred = $q.defer();
var searchindex = wop;
var url = '../register/backend/databaseconnect/getexhibitors.php';
var config = {
params: {
search: searchindex
},
cache:true
};
$http.get(url, config).then(function (data) {
service.datafairs = data.data.rows;
for (var i in service.datafairs) {
service.flatexhibitors.push(service.datafairs[i].doc);
};
deferred.resolve(service.flatexhibitors);
}, function (error) {
console.log(error);
deferred.reject(error);
});
return deferred.promise;
}
}
return service;
})
は、あなたが2つの別々の配列を必要とする理由を理解しないでください、ちょうど 'データを返しません。 .data.rows'を – charlietfl