2
我是Knockout.js新手,試圖弄清楚事情。我有這個模型爲我的用戶:如何在使用Knockout和Mapping插件時將錯誤附加到字段?
var UserModel = function(data)
{
ko.mapping.fromJS(data, {}, this);
// Other non-relevant stuff
this.errors = ko.observableArray();
this.save = function()
{
$.ajax({
type: 'PUT',
url: API+'user',
data: ko.mapping.toJSON(this),
contentType: 'application/json',
context: this,
success: function(data)
{
ko.mapping.fromJS(data, {}, this);
},
error: function(jqxhr, status, error)
{
if(jqxhr.responseJSON.errors)
this.errors(jqxhr.responseJSON.errors);
},
});
};
}
當放失敗,errors
被填充,至少就我所看到的:
<pre data-bind="text: ko.toJSON($root, null, 2)"></pre>
{
"id": 2,
"email": "[email protected]",
"name": "Alice",
"roles": "login",
// Other non-relevant stuff
"errors": {
"email": [
"Invalid email domain."
],
"name": [
"Cannot be empty."
]
}
}
但是,用模板下面,怎麼能我在錯誤所屬的每個字段旁邊顯示這些錯誤?
我使用該用戶的模板目前看起來是這樣的:
<script type="text/html" id="user-row">
<tr spellcheck="false">
<td>
<div data-key="Name" data-bind="editable: editing, editableValue: name"></div>
</td>
<td>
<div data-key="Email" data-bind="editable: editing, editableValue: email"></div>
</td>
<td>
<div data-key="Roles" data-bind="editable: editing, editableValue: roles"></div>
</td>
<td>
<a href="javascript:void(0)" data-bind="click: save">Save</a>
</td>
</tr>
</script>
- 如何綁定到時候有沒有關鍵錯誤文本?
- 如何綁定「過濾」通過在每個
div
關鍵?
\ *捂臉\ *,沒想到的是,它是一個對象。在PHP中它是一個關聯數組,並且我認爲每個字段也可能有多個錯誤,但實際上我沒有。將嘗試你的擴展,這看起來非常方便,明天。只是我在 – Svish
之後的提示讓它工作!謝謝 – Svish