0

私は新しい会社を作るという見解を持っています。

会社には多数の取引があります。または、そのうちの 1 つが主な取引です。その会社の取引を入力するときに、オートコンプリートで取引を選択すると、この取引がオートコンプリート テキストボックスの下の取引のグリッドに追加されます。グリッドには、非表示フィールドとしての tradeId、取引、および取引が主要な取引であるかどうかを示すラジオ ボタンと削除ボタンが含まれています。

これは、住所などの他の会社の詳細を含むフォームの一部です。今、ノックアウトと(おそらく)jsrenderを使用して、サーバーに投稿せずにグリッドにデータを入力できるかどうか疑問に思っていますか?

グリッドと他の会社の詳細を入力したら、データをコントローラーの post メソッドに送信します。

通常、Html ヘルパーを使用してコントローラーに値をポストしますが、ノックアウトを使用してそれを行う方法がわかりません。

4

1 に答える 1

1

はい、これにはノックアウトを使用できます。チュートリアルをまだチェックアウトしていない場合は、このノックアウト リストとコレクションのチュートリアルを試してください。これにより、正しい方向に進むはずです。必要なことは、監視可能なプロパティを持つ Trade オブジェクトを作成し、別のノックアウト ビュー モデルで、トレード オブジェクトを格納する observableArray を作成することです。サーバーへの投稿については、同じ場所に他のチュートリアルがあります。

function Trade(item) {
    var self = this;
    self.tradeId = ko.observable(item.tradeId);
    self.tradeName = ko.observable(item.tradeName);
    self.isPrimary = ko.observable(item.isPrimary);
}

function TradesViewModel() {
    var self = this;
    // Editable data
    self.trades = ko.observableArray([]);
    self.removeTrade = function(trade) { self.trades.remove(trades) }

    self.save = function() {
         $.post("/controller/action", self.trades);
    }
}

ko.applyBindings(new TradesViewModel());
于 2013-01-06T19:12:37.713 に答える