2017-04-04 21 views
0

私は$ state.reloadを使用してpage.whenを更新したときに更新されたデータを見ることができます。$ tate.reloadを使用せずにこれを解決するにはどうすれば保存ボタンをクリックするとデータを更新できますか? 。ここ は私のjavascriptのコードです:angularjsを使ってデータを更新するには?

vm.myFuncUpdate= function() { 
    if (!vm.id) { vm.id= vm.infoFunc.date; } 
    if (!vm.pid) { vm.pid= vm.infoFunc.person} 

    mySrvc.myPostData(id,pid,function (response, status) { 
     console.log(response); 
     vmCancel(); 

    }); 

} 

HTMLコード:

<input type="button" value="Save" ng- 
    click="myFuncUpdate()" /> 

サービス:

this.myPostData= function (id, pid, funCallBack) { 
    $http({ 
     method: "POST", 
     url: "http://myapp/api/profile/details", 
     headers: { 
      'Content-Type': 'application/json; charset=utf-8', 
      'dataType': 'json' 
     }, 
     data: { id: id, pid: pid } 
    }).success(function (response, status) { 
     funCallBack(response, status); 

    }).error(function (reason, status) { 
     if (status == 400) 
      alert(JSON.stringify(reason)); 
     else if (status == 404) 
      alert("Something wrong!"); 
     else 
      alert("Something Wrong"); 

    }); 
} 

任意の助けをいただければ幸いです。

+0

私が保存ボタンをクリックしたときにデータを更新する必要があります。しかし、問題はデータが更新されていますが、私はページをリフレッシュすると更新されたデータを見ることができます。 "これはあなたが**アップデートを見たいと思っているのですか、**あなたは**そうではありませんか? – Claies

+0

私はページを更新した後にのみpdateされます。これは$ state.reloadを使用しました。$ state.reload()の代わりに可能な方法があります。 @Claies – pbsbr

+0

うーん、あなたは '.success'関数でクライアント側のデータを更新する必要があります。副作用として、 '.success'を使用すべきではありません。それは非難され、より新しい角度リリースから削除されました。 – Claies

答えて

0

$ scope.formNameを使用できます。$ setPristine();

AngularJSのフォーム検証セクションをチェックすることをお勧めします。これは、出発点とその仕組みを理解するためのものです。

https://docs.angularjs.org/guide/forms

0

私はあなたが取得し、更新されたデータが正しいことが表示されますAPI呼び出しを持っていると思いますか? ので、あなただけのPS、このテンプレートを更新するための方法の一つであるhttp://myapp/api/profile/details

var init = function(){ 
     APIServices.profileData.success(function(data) { 
     self.newProfileData = data; 
     //console.log(self.newProfileData); 
    })  
    } init(); 
$rootScope.$on('update-Data', function(){ 
     init(); 
    }); 

this.myPostData= function (id, pid, funCallBack) { 
$http({ 
    method: "POST", 
    url: "http://myapp/api/profile/details", 
    headers: { 
     'Content-Type': 'application/json; charset=utf-8', 
     'dataType': 'json' 
    }, 
    data: { id: id, pid: pid } 
}).success(function (response, status) { 
    funCallBack(response, status); 
    **$rootScope.$broadcast('update-Data');** 

}).error(function (reason, status) { 
    if (status == 400) 
     alert(JSON.stringify(reason)); 
    else if (status == 404) 
     alert("Something wrong!"); 
    else 
     alert("Something Wrong"); 

}); 

}

「あなたはこのAPIを使用する場合、再びそれを呼び出す必要があります:私はuがフェッチAPIを持っていない場合を前提とあなたは$ watchを使ってモデルを見ることができると思います

+0

私はinit()を呼び出さなければなりません。関数 – pbsbr

+0

フェッチAPIがありますか?更新されたプロファイルデータを取得しますか? –

+0

はい私は更新されたデータを取得するAPIを持っていた – pbsbr

関連する問題