通过自动填充填充网格并发布结果

时间:2013-01-05 22:39:32

标签: model-view-controller knockout.js

我认为我创建了一家新公司。

该公司有多个行业,或者哪一个是主要贸易。 因此,当我输入该公司的交易时,我通过自动填充选择交易,并将此交易添加到自动填充文本框下方的交易网格中。网格包含tradeId作为隐藏字段,交易和单选按钮,用于指示交易是主要交易还是删除按钮。

这是包含其他公司详细信息(如地址)的表单的一部分。 现在我想知道我是否可以使用knockout和(也许)jsrender填充网格而不发布到服务器?

当我填写网格和其他公司详细信息时,我想将数据提交给控制器发布方法。

通常我使用Html帮助器将值发布到控制器,但我看不出如何使用knockout来做到这一点。

1 个答案:

答案 0 :(得分:1)

是的,您可以使用Knockout进行此操作。如果您尚未检查教程,请尝试此Knockout List and Collections tutorial。这应该指向正确的方向。您需要做的是创建具有可观察属性的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());