Это, наверное, простой и глупый вопрос, но я здесь не в порядке. Наш профессор попросил нас создать игру (в моем случае Sudoku), где мы используем MVC. Вид и контроллер могут использоваться как один файл js (поскольку мы получаем мокрые ноги), а модель должна находиться в отдельном файле js. Я могу заставить просмотр работать отлично, но когда я пытаюсь использовать что-то в модели ... ну, это то, что я не знаю, как вызвать файл модели (массив или 81 элемент, содержащий значение для входа в Судоку). Любая помощь, чтение или видео будут оценены. Спасибо.Как вы реализуете модель MVC в Javascript
-1
A
ответ
0
В угловых приложениях, вид объектной модели документа (DOM), контроллеры классы JavaScript, и данные модели хранятся в свойствах объекта.
+0
https://xkcd.com/1343/ – Nils
0
Это то, что я понимаю под MVC в JavaScript. Вероятно, это неправильно.
function Model() {
this.state=0;
this.observers=[]
this.addObserver = function(observer) {
// i, the model, have no idea what this observer is.
this.observers.push(observer);
}
this.notifyObservers = function() {
for (i = 0; i < this.observers.length; i++) {
// i, the model, have no idea what this does in the observer.
this.observers[i].modelChanged();
}
}
this.doSomethingWithInternalState = function(observer){
this.state+=1
// i, the model will notify observers when my state changes.
// They can decide on their own what to do then.
this.notifyObservers();
}
}
// That would be views (or mini-models or read-only controllers, whatever).
function Observer() {
this.init = function(model) {
this.model=model;
};
this.modelChanged = function(){
alert('bazinga');
};
}
function SudokuBoard(){
this.boardsize=0;
this.modelChanged = function() {
if (this.model.state < 10) {
this.boardsize=this.model.state*20;
alert(this.boardsize);
}
};
}
SudokuBoard.prototype=new Observer;
function MessageWindow(){
this.modelChanged = function(){
alert('Sudoku is cool');
};
}
MessageWindow.prototype=new Observer;
function AnotherGuiElem(){
this.bazinga=true;
}
AnotherGuiElem.prototype=new Observer;
// that would be a controller.
document.onclick=function(){
m.doSomethingWithInternalState();
a.bazinga=true;
};
// we have a model, views and one controller, now lets connect everything.
var m = new Model;
var b = new SudokuBoard();b.init(m);
var w = new MessageWindow();w.init(m);
var a = new AnotherGuiElem();a.init(m);
m.addObserver(b);
m.addObserver(w);
m.addObserver(a);
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8" />
</head>
<body>
<script src="test.js"></script>
</body>
</html>
Смежные вопросы
- 1. Как вы реализуете MPVolumeView?
- 2. Как вы реализуете «Вы имели в виду»?
- 3. Как вы реализуете выборку api?
- 4. Как вы реализуете метод makeKeyAndOrderFront :?
- 5. В Qt, как вы правильно реализуете делегатов?
- 6. Как вы реализуете что-то вроде статического метода в JavaScript?
- 7. Как вы реализуете классы с подмножествами свойств?
- 8. Как вы реализуете 1.day.ago в Ruby
- 9. Как вы реализуете 'EXIT_CODES' в python?
- 10. Как вы реализуете Coroutines в C++
- 11. Как вы реализуете класс в Logramm?
- 12. Как вы правильно реализуете звук в libgdx?
- 13. Как вы реализуете расстояние Левенштейна в Дельфи?
- 14. Как вы реализуете этот общий класс?
- 15. Как часто вы реализуете большую тройку?
- 16. Как вы реализуете интерфейс IDynamicObject C# 4?
- 17. Как вы реализуете присоединиться запрос для JDO
- 18. Как вы реализуете размеры дизайна материалов
- 19. Как вы реализуете простые переадресации сайтов?
- 20. Как вы реализуете конкретные типы в общих чертах в ржавчине?
- 21. Как вы правильно реализуете превращение int в строку?
- 22. Как вы реализуете глобальные клавиатурные перехватчики в Mac OS X?
- 23. Как вы реализуете pow (a, b) в C? условие следует -
- 24. Изучение Алгоритмов на себе, как вы реализуете кортежи в java?
- 25. Как вы реализуете логику с булевой переменной в HLSL?
- 26. Как обновить модель в MVC
- 27. Access MVC модель свойство в Javascript
- 28. Как вы реализуете среду программирования на рабочем месте?
- 29. Как вы реализуете Honeycomb фиолетовый/черный градиент PreferencesActivity theme?
- 30. Как вы безопасно реализуете WakeLock по нескольким активам
Использование angularJs для связывания двухсторонняя для MVC –