0
コントローラと工場がある場所にアプリケーションを作成しました。私は、この配列に要素のidをプッシュしたいファクトリの内部に配列を持っています。しかし、配列に要素をプッシュしようとすると、エラーが発生します。イオンアプリケーションエラー:array.push()は関数ではありません
"favorites.push is not a function"
以下は、コントローラと工場を見つけることができます。読書をありがとう: 工場:
.factory('favoriteFactory',['$resource', 'baseURL','$localStorage', function ($resource, baseURL, $localStorage) {
var favFac = {};
var favorites = $localStorage.get('favorites', []);
favFac.addFavorites = function (index) {
for(var i=0; i<favorites.length; i++){
if(favorites[i].id == index)
return
}
favorites.push({id: index});
$localStorage.storeObject('favorites',favorites)
}
favFac.deleteFromFavorites = function (index) {
for (var i = 0; i < favorites.length; i++) {
if (favorites[i].id == index) {
favorites.splice(i, 1);
}
}
$localStorage.storeObject('favorites', favorites)
};
favFac.getFavorites = function() {
return $localStorage.getObject('favorites',[]);
};
return favFac
}])
コントローラー:
.controller('MenuController', ['$scope', 'menuFactory', 'favoriteFactory','baseURL', '$ionicListDelegate', 'dishes', '$localStorage',
function($scope, menuFactory,favoriteFactory, baseURL, $ionicListDelegate, dishes, $localStorage) {
$scope.baseURL = baseURL;
$scope.tab = 1;
$scope.filtText = '';
$scope.showDetails = false;
$scope.showMenu = true;
$scope.message = "Loading ...";
$scope.addFavorite = function (index) {
console.log("index:" +index);
favoriteFactory.addFavorites(index);
$ionicListDelegate.closeOptionButtons();
};
$scope.dishes = dishes;
$scope.select = function(setTab) {
$scope.tab = setTab;
if (setTab === 2) {
$scope.filtText = "appetizer";
}
else if (setTab === 3) {
$scope.filtText = "mains";
}
else if (setTab === 4) {
$scope.filtText = "dessert";
}
else {
$scope.filtText = "";
}
};
$scope.isSelected = function (checkTab) {
return ($scope.tab === checkTab);
};
$scope.toggleDetails = function() {
$scope.showDetails = !$scope.showDetails;
};
}])
は、デフォルトでは、応答をありがとう:
は、このであるべき2つのパラメータを取ることができます。 2番目はあなたが提供できるデフォルト値です。問題は私が同じエラーを持っていることを変更していることです。私は単純な配列を作成しています。 –
これは、私が同じことを作成したコードから2番目の部分です。function(key、defaultValue){ return $ window.localStorage [key] || defaultValue; }、 –
私は自分の機能について話していることを知っています。それは同じことをしていると私はそのデフォルト値に送信します。 var favorites = $ localStorage.get( 'お気に入り')|| []; –