我有一個項目列表。通過點擊一行,我看到編輯表單。綁定工作很好,第一次點擊。但無論我點擊第二,第三等時間,我都會看到填充了第一次點擊的值的表單。knockout.js綁定值只有一次
商品代碼初始化:
self.newManager = {
UserId: ko.observable(),
CustomerId: ko.observable(),
UserName: ko.observable(),
DisplayName: ko.observable(),
Email: ko.observable(),
IsActive: ko.observable(true),
Password: ko.observable(),
ConfirmPassword: ko.observable(),
Roles: ko.observableArray()
}
瞭解詳細信息代碼:
self.getManagerDetail = function (item) {
self.newManager.UserId(item.UserId);
self.newManager.UserName(item.UserName);
self.newManager.DisplayName(item.DisplayName);
self.newManager.Email(item.Email);
self.newManager.IsActive(item.IsActive);
self.newManager.CustomerId(item.CustomerId);
self.newManager.Roles(item.Roles.$values);
self.showManagerForm("editManagerForm");
}
HTML表單:
<form class="form-horizontal" id="editManagerForm" style="display: block;" data-bind="submit: editManager">
<div class="form-group" data-bind="with: newManager">
<label class="control-label">Login</label>
<div data-bind="text: UserName"></div>
<label class="control-label" for="DisplayName1">Name</label>
<div>
<input class="form-control" id="DisplayName1" type="text" data-bind="value: DisplayName" data-val="true">
</div>
<label class="control-label" for="Email1">Email</label>
<div>
<input class="form-control" id="Email1" type="text" data-bind="value: Email" data-val="true">
</div>
<label class="control-label">Is active</label>
<div>
<input class="form-control" id="IsActive" type="checkbox" data-bind="checked: IsActive" data-val="true">
</div>
<label class="control-label">Roles</label>
<div data-bind="foreach: $root.roles">
<div class="checkbox">
<label>
<input type="checkbox" value="God" data-bind="checked: $parent.Roles, value: $data">
<span data-bind="text: $data">God</span>
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" value="MarketingGuy" data-bind="checked: $parent.Roles, value: $data">
<span data-bind="text: $data">MarketingGuy</span>
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" value="Accountant" data-bind="checked: $parent.Roles, value: $data">
<span data-bind="text: $data">Accountant</span>
</label>
</div>
<div class="checkbox">
<label>
<input type="checkbox" value="Manager" data-bind="checked: $parent.Roles, value: $data">
<span data-bind="text: $data">Manager</span>
</label>
</div>
</div>
</div>
<button class="btn btn-default ajaxbutton" type="submit">Сохранить</button>
</form>
我在調試器中的步驟檢查self.getManagerDetail一步。按照我的預期設置值 - self.newManager值設置爲單擊項目的值。
什麼可能是這種行爲的原因?
你可以請你的代碼/ HTML從你調用'getManagerDetail'嗎? – nemesv 2014-10-12 14:20:05
如果可能,請發佈viewmodel代碼,以便我們可以看看 – 2014-10-12 14:41:46
感謝您的參與!我找出原因並貼出來。 – IAfanasov 2014-10-12 14:43:56