Технически у меня есть ответ на этот вопрос, но, к сожалению, не тот, который я искал. Мне пришлось принять это, потому что этот человек работал со мной все время, вкладывая много усилий. Здесь я прошу того же q-n получить конкретный ответ, который мне нужен:
Мне нужен декларативный способ выражения проверок полей модели в модели представления Knockout:
Имея эту модель представления MVC:
public class Email
{
public string Selected { get; set; }
public string Name { get; set; }
}
public class User
{
public string UserName { get; set; }
public IList<Email> Emails { get; set; }
}
и имеющий этот нокаут viewModel
:
var viewModel = {
UserName: ko.observable("@Model.UserName"),
Emails: ko.observableArray(@Html.Json(@Model.Emails) || []),
// How to express these: ???
// Email.Selected: ko.observable().extend({ required: true })
// Email.Name: ko.observable().extend({ required: true, email: true })
}
какие изменения мне нужно внести в Knockout viewModel
, чтобы декларативно выразить это. По сути, это сводится к выражению Knockout viewModel
аналогично MVC, но с использованием проверки нокаута (вместо аннотаций данных MVC) в полях этой модели.
Прежде чем ответить, прочтите, пожалуйста, до конца, это не так много текста, чтобы читать, но я ищу здесь что-то конкретное.