Knockout JS - шаблон MVVM, куда идет моя логика пользовательского интерфейса? - PullRequest
0 голосов
/ 28 июня 2011

Это звучит как глупый вопрос, но я подумал, что я все равно опубликую ...

Я просто делаю простое веб-приложение с javascript и html и выбрал Knockout JS для основной платформы для управления пользовательскими интерфейсами.,Однако я немного озадачен тем, как действовать.

Моя первая страница - очень простая страница входа в систему, на ней просто есть поле имени пользователя и пароля, проблема возникает, когда я хочу что-то сделать с пользовательским интерфейсом.Примером может быть добавление водяного знака в окна пользовательского интерфейса или добавление логики при прослушивании пользовательских событий, я мог бы просто написать его как встроенный javascript, но тогда я не смогу на самом деле выполнить юнит-тестирование.

Первоначально япланировал использовать шаблон стиля MVC, чтобы я мог тестировать контроллер с помощью имитации представления и просто помещать туда любую логику пользовательского интерфейса.

Так есть ли приемлемый способ сделать это, не помещая все как влогика?

Ответы [ 2 ]

0 голосов
/ 03 июля 2011

Способ работы mvvm заключается в том, что представление должно быть в значительной степени визуальным представлением этой модели представления, поэтому добавьте туда свою логику.Если вы спроектировали все правильно, чтобы ваша функциональность содержалась в отдельных классах, вы можете легко их смоделировать.Если вы привыкли к MVC, тогда просто смотрите viewmodel в качестве вашего контроллера.

Я могу видеть, куда вы идете с вашим вопросом, хотя, как и в случае со сложными представлениями, в вашем классе ViewModel может произойти довольно много, но если вы просто придерживаетесь простых принципов oo и инкапсуляции, вы не ошибетесь слишком далеко ...

Так что в любом случае, чтобы подвести итог, поместите это в свою логику в модели представления.

0 голосов
/ 28 июня 2011

Есть два подхода, которые вы можете использовать. Для JavaScript существует пакет xUnit, называемый JsUnit , поэтому можно выполнить модульное тестирование логики пользовательского интерфейса на основе JavaScript. Другой путь, о котором вы упомянули, заключается в использовании контроллера для хранения логики и JavaScript в качестве «чистой» модели представления. Я лично чувствую, что любой подход жизнеспособен. Вы просто хотите убедиться, что ваша модель представления на основе JavaScript не становится слишком близкой к представлению. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...