Das ist mein Code. Ich verwende $ localStorage, um ein Objekt in ein Array zu schieben. Wenn ich auf den Knopf klicke, wird das Objekt richtig gedrückt und das selbe Objekt wird erneut gespleißt. $ localStorage.tableArray wird der $ scope.Storage für die Dropdown-Liste zugewiesen. Drop-Down-Liste kommt gut, wenn die Schaltfläche Aktion ausgeführt wird.
Mein Problem ist der $ scope. $ Speicher mit zwei Elementen. wenn ich die Seite aktualisieren Dropdown-Liste nicht kam. , wenn ich drückende oder spleißende Handlung, die auf den Knöpfen durchgeführt wird, Dropdownliste kommen gut.
Bitte helfen Sie, $ scope. $ Speicherelemente in die Dropdown-Liste zu erhalten, wenn Sie die Seite aktualisieren. Ich erstelle einen Plunker diesbezüglich. überprüfen einmal
HTML:
<body ng-controller="MainCtrl">
<a class="btn {{table.btnClass}} btn-success" ng-repeat="table in tablelist" ng-click="getTable(table)" style="padding-left:1px">{{table.tablename}}</a>
<select ng-options="table.tablename as table.tablename for table in $storage" ng-model="table.tablename"><option value="">---select table---</option></select>
JS:
var app = angular.module('plunker', ["ngStorage"]);
app.controller('MainCtrl', function ($scope,$localStorage,$filter) {
$scope.tablelist = [{ "tablename": "t1" }, { "tablename": "t2" },{ "tablename": "t3" },{ "tablename": "t4" }]
if ($localStorage.tableArray === undefined) {
$localStorage.tableArray = []
}
if ($localStorage.tableslist === undefined) {
$localStorage.tableslist = []
}
angular.forEach($scope.tablelist, function (list, $index) {
var found = $filter('filter')($localStorage.tableArray, { tablename: list.tablename }, true);
if (found.length) {
$scope.tablelist[$index].btnClass = found[0].btnClass;
}
});
$scope.getTable = function (table) {
table.btnClass = table.btnClass == "btn-danger" ? "btn-success" : "btn-danger"
var exists = false;
angular.forEach($localStorage.tableArray, function (list, $index) {
if ((list.tablename == table.tablename)) {
console.log(list.tablename)
console.log(table.tablename)
exists = true;
$localStorage.tableArray.splice($index, 1)
$localStorage.tableslist.splice($index, 1)
$scope.$storage= $localStorage.tableArray;
console.log($scope.$storage)
return false
}
});
if (!exists) {
$localStorage.tableslist.push(table)
$localStorage.tableArray = $localStorage.tableslist;
$scope.$storage = $localStorage.tableArray
console.log($localStorage.tableArray)
table.color = "red"
}
}
});
https://plnkr.co/edit/0RpAGVR5ZpVFMvmmxipu?p=preview
Vielen Dank @ Fidel90. für mich arbeiten – SrinivasAppQube