Я новичок в Knockout.js, пытаясь понять, что происходит. У меня есть эта модель для моих пользователей:Как присоединить ошибки к полям при использовании плагина для нокаута и картографии?
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
?
\ * Facepalm \ *, не думать о том, что он является объектом. В PHP это ассоциативный массив, и я думал, что может иметь несколько ошибок для каждого поля, но на самом деле я этого не делаю. Попробуй продлить, что кажется очень удобным, завтра. Просто мои советы после – Svish
Получил это! благодаря – Svish