2017-10-11 12 views
0

これは私のコードを簡略化したものですが、私ができる必要があるのは、それぞれの入力フィールドの出力をlocalStorageに保存してお互いを上書きすることなく保存することです。localstorageの角度とオブジェクト

Atm、それは動作しません。私はそれを保存するために両方の入力を埋める必要があります。

var app = angular.module("app", []); 
 

 
app.controller("IndexController", ["$scope", function($scope) { 
 

 
    this.list = { 
 
    "mandag": {}, 
 
    "tirsdag": {} 
 
    }; 
 

 

 
    //LOCALSTORAGE 
 
    this.Save =() => { 
 
    localStorage.setItem("Ret", JSON.stringify(this.list.mandag)); 
 
    } 
 

 
    this.addFood = (day, title) => { 
 
     this.list[day] = { 
 
     "food": title, 
 
     "ingredients": [] 
 
     }; 
 
     console.log(this.list); 
 

 
    } 
 

 
    
 
    this.removeFood = (day) => { 
 
    this.list[day].food = ""; 
 
    } 
 

 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <title></title> 
 
    </head> 
 

 
    <body ng-app="app" > 
 
    <div ng-controller="IndexController as vm"> 
 
     <div ng-repeat="(day, item) in vm.list track by $index"> 
 
      <h3>{{day}}</h3> 
 
      <form class="" name="ret" ng-submit="vm.addFood(day, vm.newFood[$index]);vm.newTodo[$index] = ''"> 
 
      <input placeholder="Ædelse" type="text" id="foo" ng-model="vm.newFood[$index]" ng-disabled="item.food" value="" required/> 
 
      <button ng-disabled="ret.$invalid" ng-click="submitted=true; vm.Save()" ng-hide="submitted">Go</button> 
 
      </form> 
 
      <button ng-click="vm.removeFood(day); submitted=false" ng-show="submitted">X</button> 
 
     </div> 
 

 
    </div> 
 

 
    
 
    </body>

Codepen version

+0

何が本当の問題ですか両方の入力を満たすまで "Go"ボタンが無効になっていますか? – jitender

+0

コードペインを試してください。それぞれのGoボタンは無効になっています。 –

+0

お互いを上書きしないようにするには、それらを異なる変数として保存するだけです。 –

答えて

0

私はNGクリックHTMLで= "vm.Saveを()"、そして少し私のjavascriptをrearragningを削除することで、これを固定:

this.Save =() => { 
 
     localStorage.setItem("Ret", JSON.stringify(this.list)); 
 
    } 
 

 
    this.addFood = (day, title) => { 
 
     this.list[day] = { 
 
     "food": title, 
 
     "ingredients": [] 
 
     }; 
 
     console.log(this.list); 
 

 
     this.Save(); 
 
    }

関連する問題