これは何度も尋ねられていると思いますが、私は... 見つけられません。ここは午後 10 時 30 分です。これは皆さんにお任せします。
基本的に、json サーバー メソッドへの 2 つの呼び出しがあります - データの更新と新しい合計の取得です。論理的には、更新データが最初に呼び出され、新しい合計を取得する $emit を介して通知を送信します。残念ながら、サーバー コントローラーにブレークポイントを設定すると、SetAlertRead の前に GetAlertTotals が呼び出されるため、間違ったデータが返されます。
「合計」コードは別のコントローラーにあるため、$emit/publish/subscribe:
$scope.$on('RefreshUnreadItemsCounter', function () {
$scope.alertCount = $scope.GetAlertCount();
$scope.alertTotals = $scope.GetAlertTotals();
$scope.$apply();
});
データは uiGrid にあり、次の (部分的な) 定義があります。
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
$scope.gridApi.core.notifyDataChange(uiGridConstants.dataChange.EDIT);
$scope.gridApi.selection.on.rowSelectionChanged($scope, function (row) {
var authorisationToken = $('input[name="__RequestVerificationToken"]').val();
row.entity.AlertSeen = true;
$scope.message = row.entity.Message;
$http({
url: '/Alerts/SetAlertRead',
contentType: "application/json; charset=utf-8",
method: 'POST',
data: { rowId: row.entity.UserAlertsId },
headers: { '__RequestVerificationToken': authorisationToken }
});
$scope.$emit('RefreshUnreadItemsCounter');
});
ユーザーは行をクリックして行に関連付けられたデータを表示し、それを「読み取り」、json 呼び出し ( /Alert/SetAlertRead
) を介してデータ更新をトリガーします。$emit 呼び出しの前にタイムアウトを設定して、json 呼び出しを実行する約束時間を与えると仮定していますが、その方法はわかりません。
助けてください!差し支えなければ、できるだけ多くのコードが必要です。再度、感謝します。