Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.09.2011, 19:06
ekonomizer вне форума Посмотреть профиль Отправить личное сообщение для ekonomizer Найти все сообщения от ekonomizer
  № 1  
Ответить с цитированием
ekonomizer

Регистрация: Aug 2011
Сообщений: 22
По умолчанию MVС в Flex

Здравствуйте подскажите пожалуйста как можно изменять начинку кастом компонента из модели.
Я написал небольшое приложение все в Application файле, решил перевести под MVC и столкнулся с проблемой изменения данных(передачи.)
Более подробно:

1)Есть контроллер:
в нем я гружу вид и передаю в него какие то данные.
Код:
<components:component id="comp" data="{data}"/>
2)Есть Вид - кастом компонент:
в нем я что то отображаю и по нажатию на кнопку вызываю метод Search у модели для проверки введенных пользователем данных.

Код AS1/AS2:
<s:Label id="label_1"/>
<s:ComboBox id="kombo_1"
			dataProvider="{data}"
			keyDown="keyDownHandler(event, data)"
			/>
 
 
public var model:GoodModel = new GoodModel();
 
	protected function keyDownHandler(event:KeyboardEvent, data:ArrayCollection):void
	{
		model.search(data,и еще параметры);
        }
3)Есть модель: и тут вся загвоздка, я хочу прямо из модели поменять скажем свойства у Combobox.

Код AS1/AS2:
public function search(data:ArrayCollection,.....);
{
	if(true)
           kombo_1.visible = false;
        else
           kombo_1.visible = true;
}
но компилятор говорит мне: "доступ неопределенного свойства."
Я пытался задавать пространство имен для места где лежит компонет, не помогло, не помогла передача идентификатора в метод Search()... ну и вообще застрял тут.
Подскажите пожалуйста, как можно из модели обратиться к виду напрямую и что то поменять.

Старый 02.09.2011, 20:09
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 2  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
Лучше такое в моделях не делать. Модель ничего не знает о виде, она хранит состояние и, возможно, делает всякие запросы (если у вас нет концепции сервис-слоя).
Скрывать/показывать какие-то контролы — это забота чисто предствления. Пусть модель оповещает о своём изменении, а вид реагирует на это.

Старый 02.09.2011, 20:15
ekonomizer вне форума Посмотреть профиль Отправить личное сообщение для ekonomizer Найти все сообщения от ekonomizer
  № 3  
Ответить с цитированием
ekonomizer

Регистрация: Aug 2011
Сообщений: 22
Полностью согласен и уже переписал код

Но вопрос этот все равно остался, можно как нибудь сделать такое обращение?

Старый 02.09.2011, 23:20
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 4  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Разрешите вклиниться в тему и задать вопрос по MVC? (на случай, если разрешаете, привожу код вопрос ниже)
С превеликим удовольствием почитал http://www.flasher.ru/forum/showthread.php?t=138349 со всеми потрохами. Все здорово, но некоторые вопросы остались без ответа. Одна замечательная мысль, которая мне запомнилась "MVC у каждого свой"))))
Тем не менее, я сторонник того, что если пользуешься инструментом, научись пользоваться правильно, и только потом применяй нестандартные подходы (мож че лучше придумаешь).
Ладно, вопрос: зачем нужна V и M? Почему обработку всех событий с обеих сторон и вызов методов не отдать целиком контроллеру. Тогда и модель не будет знать ничего о виде, и вид о модели. И в случае, если мы что-то захотим чуть-чуть поменять, или перелопатить существенно, то достаточно будет изменить лишь крошку контроллер (насколько я понимаю, он должен быть "тонким"). В случае же, если у нас Представление подписывается на события Модели, а мы по каким-то причином убираем диспатч соответствующего события, то нам придется лезть и в код Представления.

Старый 03.09.2011, 03:03
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 5  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
3)Есть модель: и тут вся загвоздка, я хочу прямо из модели поменять скажем свойства у Combobox.
Это не MVC
Цитата:
но компилятор говорит мне: "доступ неопределенного свойства."
А откуда в классе подели известно, что такое kombo_1?
Цитата:
Но вопрос этот все равно остался, можно как нибудь сделать такое обращение?
Передать ссылку на kombo_1 в search()
__________________
משיח לא בא
משיח גם לא מטלפן

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:14.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:14.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.