1
私はこのビューました:Chromeのデバッグ中に私はその変数「データ」を見ることができるにもかかわらず、ノックアウトデータバインディングのViewModel
@model Store.WebUI.Models.CartIndexViewModel
@{
ViewBag.Title = "Your Cart";
}
<script type="text/javascript" src="~/Scripts/knockout-3.4.2.js"></script>
<script type="text/javascript" src="~/Scripts/knockout.mapping-latest.js">
</script>
<script type="text/javascript">
var data = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model));
var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
</script>
<h2>Your cart</h2>
<table id="cartTable" class="table">
<thead>
<tr>
<th>Quantity</th>
<th>Item</th>
<th class="text-right">Price</th>
</tr>
</thead>
<tbody data-bind="foreach: Lines">
<tr>
<td data-bind="text: Quantity"></td>
<td data-bind="text: Product.Name"></td>
<td data-bind="text: Product.Price"></td>
</tr>
</tbody>
</table>
と値が表の列に結合されていないいくつかの理由のために私のスクリプトは次のようになります。
var data = {"Cart":{"Lines":[{"Product":{"ProductId":2,"Name":"Game","Description":"Some Game","Category":"Games","Price":29.99},"Quantity":1}]},"ReturnUrl":"/Games"};
私は、一般的にノックアウトとjQueryに新しいですし、私は私がここで行方不明ですかを理解することはできません。
{
"Cart": {
"Lines": [...]
}
}
注意すべきポイントはLines
がCart
内であることである:
OMG、これは非常に意味があります! –
待ちますが、viewModel.Cartではありませんか?カートへのシンプルなデータ結合は何もしていないようです。 バインドされている値を追跡するビューをデバッグする良い方法はありますか? –
これは私のためにこのフィドルで動作します:https://jsfiddle.net/rzso11jL/しかし、私が 'ko.mapping.fromJS'を使用した場合、コンソールに見られるようにエラーが発生します。個人的に、私はそのヘルパーを使ったことがないので、あまりにも多くを追加することはできません。 –