この問題は事前に申し訳ありませんが、もう何をすべきかわかりません。私は最近、AngularJSとGrails 3を使い始めました。私は全体的にデータフローをやや混乱させています。私はこれから明白な説明を求めていますが、私の問題にぴったりの良い情報源はありませんでした。Grails 3と角度 - 入力パラメータをバックエンドコントローラに渡す方法
我々はいくつかのデータモデルを持って、彼らにはFooという名前を付け、他のオブジェクトとの関係を持っており、それらにバー名前:
class Foo implements Serializable{
Date dateCreated
Date lastUpdated
String name
Bar bar
C c
...
}
と
class Bar implements Serializable {
String name
String usid
C c
D d
E e
}
を今私は中1つの入力対話を持ちたいですこれは、データベース内の1つのhttp要求ですべてのオブジェクトをカスケードするのを防ぐために、オブジェクトFooに必要なデータを書き込むことができます。
私の問題は、私がangularJSを初めて使用して以来、私はどのようにリレーショナルオブジェクトを作成し、それらをデータオブジェクトFooで使うのか分かりません。私はオブジェクトを構築するために必要な情報を持っていますBar JSONでバックエンドで保存メソッドが呼び出されました。Fooであり、BarはFooでnullです。
これまで私はFoo用のフロントエンドコントローラを持っていて、要求後にFoo.controllerはFoo.serviceにaction: 'save'を注入してバックエンドにメソッドsaveを呼び出すようにしました。
フロントエンドコントローラ:
function FooCreateController(fooService, $routeParams, $location) {
var vm = this;
vm.save = function (foo) {
fooService.save({action: 'save'}, foo, function (res) {
if (res.id) {
$location.path("/foo/" + res.id);
}
else {
alert("Unknown error occurred");
}
})
}
}
fooDataFactoryService:
angular
.module("fooPackage.foo")
.factory("fooDataFactoryService", fooDataFactoryService);
function fooDataFactoryService(DomainServiceFactory) {
return DomainServiceFactory('/foo/:action/:fooId', {fooId: '@id', action: '@action'},
{"show" : {method: "GET"}},
{"save" : {method: "POST"}},
{"delete" : {method: "DELETE"}},
{"update" : {method: "PUT"}}
);
}
Groovyのバックエンド・コントローラー:どのように
def save(Foo foo) {
if (foo == null) {
transactionStatus.setRollbackOnly()
render status: NOT_FOUND
return
}
if (foo.hasErrors()) {
transactionStatus.setRollbackOnly()
respond foo.errors, view:'create'
return
}
foo.save flush:true
respond foo, [status: CREATED, view:"show"]
}
ここ
は、重要なコード部分であり、私はこれを達成することはできますか?私は、データ型Fooでバックエンド保存メソッドを呼び出すのではなく、要求からの入力パラメータを呼び出すことを望んでいます。それとももっと良いアプローチがありますか?
私はまだAngularのことを十分に理解していませんが、今週末にはこれは非常に重要であり、何か助けが必要です。事前に:-(
ビッグありがとう!
わかりましたので、私の考えは今、この対話のためのオブジェクトはFooを使用しないことですが、代わりに文字列としてすべての入力パラメータを受け取り、それらを渡し、ダイアログオブジェクトのようなものを使用バックエンドコントローラ。コントローラは、取得したパラメータに基づいて新しいオブジェクトをインスタンス化します。これはうまくいくはずですが、私のためにうまく設計されていないようです...もう一つのアイデアが高く評価されています! – Vegaaaa
私はそれを取り戻すが、私はこの解決策についてより多く考えると、それは私にとってはより良いと思える。この入力要求を処理する独自の数式オブジェクトを使用することによって、より高い分離度と高いモジュラリティも得られます... – Vegaaaa