サーバーにユーザーのアクティビティを送信します。私のmy previous questionでは、ng-click
ケースに尋ねました。この質問は、チェックボックスとラジオボタンの場合についてです。AngularJS:サーバーにチェックボックス/ラジオボタンの値を送信します。
ユーザのアクティビティを記録するためにチェックボックスまたはラジオボタンのユーザがクリックしたサーバに送信します。
私はこのようにすることができます。
HTML:
<!-- for checkbox -->
<div class="btn-group">
<label class="btn btn-primary" ng-model="checkModel.left" uib-btn-checkbox>Left</label>
<label class="btn btn-primary" ng-model="checkModel.right" uib-btn-checkbox>Right</label>
</div>
<!-- for radio button-->
<div class="btn-group">
<label class="btn btn-primary" ng-model="radioModel" uib-btn-radio="'Left'">Left</label>
<label class="btn btn-primary" ng-model="radioModel" uib-btn-radio="'Right'">Right</label>
</div>
JS:
$scope.$watch('checkModel', function() {
sendServer("checkModel" + JSON.stringify(checkModel));
// Do other things for checkModel
}, true);
$scope.$watch('radioModel', function() {
sendServer("radioModel" + radioModel);
// Do other things for radioModel
});
function sendServer(msg) {
var req = new XMLHttpRequest();
var params = "msg=" + encodeURIComponent(msg);
req.open("POST", "/scripts/log");
req.send(params);
}
この方法では、すべてのwatch
にsendServer
を挿入するために私を必要とします。これは非効率的です。私はそれを一体的にしたいと思っています。それはできますか?
あなたはあなたがここに参照することができ、この –
ため 'directive'を使用することができます。https://stackoverflow.com/questions/45767704/angularjs-send-user-activity-to-server?noredirect=1&lq=1 –
生の 'XMLHttpRequest'を行う代わりに、[AngularJS $ http service](https://docs.angularjs.org/api/ng/service/$http)を使用してください。 '$ http'サービスは、ブラウザの[XMLHttpRequest API](https://developer.mozilla.org/en/xmlhttprequest)を介してリモートHTTPサーバとの通信を容易にするコアAngularJSサービスです。 – georgeawg