0

KnockoutJavaScriptライブラリv2.2.0rcを使用しています。

次のことができるのかしら。

私のテンプレートは次のようになります

<script type="text/html" id="@Html.UniqueId("WorkflowRulesDisplay_template")">
<div data-bind ="foreach: items">
    <fieldset>
        <legend>
            <span data-bind="text: StName"/>
        </legend>
        <dl class="row">
            <dt class="label">
                <label>Member Type:</label>
            </dt>
            <dd class="field">
                <div><input type="radio" value = "User" data-bind="attr :{name:'@Html.UniqueId("wf_usr_radio_grp_")' + StId, checked: CheckedUsr}"/>User</div>
                <div><input type="radio" value = "Group" data-bind="attr :{name:'@Html.UniqueId("wf_usr_radio_grp_")' + StId, checked: CheckedGrp}" />Group</div>
            </dd>
        </dl>
        <dl class="row">
            <dt class="label">
                <label>Description:</label>
            </dt>
            <dd class="field">
                <textarea rows ="5" cols="20" class ="textbox simple-text" data-bind="value: Description"></textarea>
            </dd>
        </dl>
    </fieldset>
</div>

私のビューモデルと初期化コードは次のようになります。

this._items = ko.observableArray(workflow.data('workflow_list_data'));
var viewModel = { items: this._items};
ko.applyBindingsToNode(this._containerElem.get(0), { template: { name:workflow.attr('id').replace('_workflow_control', '_template') } }, viewModel);

ここで、workflow.data('workflow_list_data')は

data.Select(x => new { StName = x.StatusType != null ? x.StatusType.Name : string.Empty, StId = x.SuccessorStatusId, CheckedGrp = !x.GroupId.HasValue, CheckedUsr = !x.UserId.HasValue, x.UserId, x.GroupId, x.Description });

、クライアント側では、次のようになります:[Object {StName = "lala"、StId = 123、CheckedGrp = false、CheckedUsr = true、Description = "lala"} .... {...}]

それはすべてうまくいきますが、ラジオグループ。選択したボタンを変更しても、ビューモデルは変更されません。チェックとattr-valueバインディングを試しました-すべて同じです。

4

1 に答える 1

0

問題は、それが観測可能CheckedUsrではないことです。 それ以外の CheckedGroup

this._items = ko.observableArray(workflow.data('workflow_list_data'));

試す

this._items = ko.mapping.fromJS(workflow.data);
// not sure what worflow.data is at this point?

これにより、データからobservableArrayが作成され、プロパティがに設定されますko.observable

于 2012-12-18T14:52:54.093 に答える