正常に動作する Go レスト サービスがあります。Chrome REST プラグインを使用してフォーム データを取得できます。Angular アプリからサービスにフォーム データを取得する必要がありますが、これまでのところわかりません。
私のAngularコード:
<form name="myForm">
<div class="control-group" ng-class="{error: myForm.name.$invalid}">
<label>Drug Name</label>
<input type="text" name="drugName" ng-model="drug.name" required>
<span ng-show="myForm.drugName.$error" class="help-inline">
Required</span>
</div>
<a href="#/" class="btn">Cancel</a>
<button ng-click="save()" ng-disabled="isClean() || myForm.$invalid"
class="btn btn-primary">Save</button>
<button ng-click="destroy()" ng-show="project._id"
class="btn btn-danger">Delete</button>
</form>
私のapp.js CreateCtrl、私は設定しましたRestangularProvider.setBaseUrl('/rest/v1');:
function CreateCtrl($scope, $location, Restangular) {
$scope.save = function() {
Restangular.all('drugs/').post($scope.drug).then(function(project) {
$location.path('/list');
});
}
}
私のGoコードでは、ゴリラを使用しています。関連する部分は次のとおりです。
http.Handle("/rest/v1/drugs/", drugs.MakeMuxer("/rest/v1/drugs/"));
func MakeMuxer(prefix string) http.Handler {
log.Println("**** drugs.MakeMuxer(): " + prefix);
var m *mux.Router
// Pass through the prefix if we have one.
if prefix == "" {
m = mux.NewRouter()
} else {
m = mux.NewRouter().PathPrefix(prefix).Subrouter()
}
m.HandleFunc("/", CreateDrug).Methods("POST")
// Everything else should 404.
//m.HandleFunc("/{path:.*}", gorca.NotFoundFunc)
return m
}
func CreateDrug(w http.ResponseWriter, r *http.Request) {
log.Println("**** CreateDrug.... ");
log.Println("drugName: " + r.FormValue("drugName"))
//c := appengine.NewContext(r)
}
POST が "CreateDrug" に入っていることがわかりますが、r.FormValue("drugName")空です (ブラウザのレスト プラグインを使用して "drugName" を何らかの値に設定すると、空にはなりません。