2017-12-04 25 views
0

ローカル記憶域を使用して.NETで角張っているのは初めてのことですが、私はまだ物事を理解しようとしています。誰かが私をここで案内することを願っています。ここで私がしようとしているコードの一部です。2つの異なる機能を持つ保存ボタンを持つにはどうすればいいですか?保存ボタンのADDとUPDATEのように

これはclient.htmlです:

<div class="box-footer"> 
    <button type="submit" class="btn btn-primary btn-sm" data-ng-click="vm.save()"> Save</button> 
</div> 

これはclientService.jsです:

// Suppose to combine SAVE and EDIT but how? 

function save(client) { 
    var clients = []; 
    if (localStorage.getItem('clients') != null) 
     clients = JSON.parse(localStorage.getItem('clients')); 

    clients.push(client); 
    localStorage.setItem('clients', JSON.stringify(clients)); 
} 

function edit(client) { 
    var clients = []; 
    if (localStorage.getItem('clients') != null) 
     clients = JSON.parse(localStorage.getItem('clients')); 

    clients.forEach(function (client) { 
     //compare the two ID's, if they are the same 
     //Update 
    }); 
    //save 
    localStorage.setItem('clients', JSON.stringify(clients)); 
} 

これはclient.jsです:

var vm = this; 
vm.client = { 
    id: '', 
    firstname: '', 
    lastname: '', 
    age: '' 
}; 
function edit() { 
    clientService.edit(vm.client); 
    getClients(); 
    clear(); 
} 

function save() { 
    clientService.save(vm.client); 
    getClients(); 
    clear(); 
} 

私は保存ボタンを持つことを期待テーブルから選択した後に新しいデータを追加してデータを更新することができます。

答えて

0

あなたは私の質問、先生に答えるために、この

function edit(client) { 
    var clients = []; 
    var data = JSON.parse(localStorage.getItem('clients')); 
    if (data != null){ 
     clients = data; 
     var position = data.indexOf(client); 

     /** checks if existing or not if then it will upadte same**/ 
     if(position != -1){ 
      clients[position] == client; 
     } 
     else{ 
      clients.push(client) 
     } 
    } 
    else { 
     /** push first item**/ 
     clients.push(client) 
    } 


    clients.forEach(function (client) { 
     //compare the two ID's, if they are the same 
     //Update 
    }); 
    //save 
    localStorage.setItem('clients', JSON.stringify(clients)); 
} 
+0

おかげのようないくつかのことを試してみてください同じ機能を更新したり、保存するために探している場合。しかし、「保存ボタン」を「編集」ボタンと「追加」ボタンにしたい場合はどうしたらよいですか?どのようにして2つの機能を1つの機能にまとめることができますか? – Kloe

+0

@Kloeこの関数は、両方の機能を編集して保存できるようにする 'if(position!= -1){ clients [position] == client; } 'この部分では、既存のものを編集することができます – Edison

0

3者演算子を使用して、送信時にクライアントが存在するかどうかを確認できます。

<button type="submit" class="btn btn-primary btn-sm" data-ng-click="vm.client ? vm.edit() : vm.save()"> 
関連する問題