2017-02-16 5 views
0

APIエンドポイントの呼び出しが成功すると、スコープ内の値を更新しようとしています。 以前は、ユーザーが「保存」をクリックするとすぐにこれらの値を更新しました。ただし、何らかの理由でAPI呼び出しが失敗しても、ページが更新されるまでUIは引き続き '新しい'値を反映するため、これは理想的ではありません。ここでリソースコールの成功ハンドラ内の値の更新がUIに反映されない

働く私のコントローラのコードですが、idは「早すぎる」更新:

vm.setId = function(user) { 
    var _onSuccess = function() { 
    alertService.success('Set ' + user.email + ' ID to ' + user.edit.id.value); 
    }; 
    var _onError = function(err) { 
    alertService.danger(err.data.message); 
    }; 

    user.id = user.edit.id.value; 

    usersService.setId({ 
    email: user.email, 
    id: user.edit.id.value 
    }, {}).$promise.then(
    _onSuccess, 
    _onError 
); 
}; 

これは私が使用しようとしているが、idが新に更新されていないコードであります成功した保存の価値:

vm.setId = function(user) { 
    var _onSuccess = function() { 
    user.id = user.edit.id.value; 
    alertService.success('Set ' + user.email + ' ID to ' + user.edit.id.value); 
    }; 
    var _onError = function(err) { 
    alertService.danger(err.data.message); 
    }; 

    usersService.setId({ 
    email: user.email, 
    id: user.edit.id.value 
    }, {}).$promise.then(
    _onSuccess, 
    _onError 
); 
}; 

答えて

0

私の問題が見つかりました。テンプレート内に一方向データバインディングを使用しました。{{::user.id}}これを双方向バインディングに変更すると、{{user.id}}は私の問題を修正しました。

関連する問題