Хобрук: Ваш путь к мастерству в программировании

Ember Model and Component, получение компонентов для обнаружения изменений в моделях

Я в замешательстве и в исправлении относительно контроллеров и компонентов, обнаруживающих изменения в моделях. Согласно Официальная документация Ember --

«По умолчанию значение, возвращаемое из вашего хука модели, будет присвоено свойству модели связанного контроллера. Например, если ваш App.PostsRoute возвращает объект из его хука модели, этот объект будет установлен как свойство модели для Приложение.Контроллер сообщений."

Следовательно, не должен ли контроллер обновляться при изменении модели в маршруте или асинхронно с помощью внешней функции?

App.IndexRoute = Ember.Route.extend({
    model: function(){
    App.set('localStore', this.get('store'));  
    App.localStore.createRecord('stats', {'name': 'cde'});
   return this.store.find("stats");
  }
});

App.IndexController  = Ember.Controller.extend({
    modelObs: function() {
        // Never triggered!
    console.log("CONTROLLER: model updated!");
}.property('model')
});

// Component with the controller's model property passed to it as localModel
// in the template
App.NewCompComponent = Ember.Component.extend({
    localModel: null,
    modelObs: function() {
    console.log("COMPONENT: Model updated!");
    }.property('localModel')

Вот Jsbin, иллюстрирующий проблему: http://jsbin.com/tavis/3/edit

Есть ли что-то, что я могу делать неправильно? Как заставить компонент обнаружить изменение в переданной модели от контроллера, и аналогично, как заставить контроллер обнаружить изменение в модели маршрута? Возможно, я что-то упускаю — указатели приветствуются! Спасибо


Ответы:


1

Вычисляемые свойства не оцениваются, если они не используются. Они лениво оцениваются.

Использование любого из этих свойств приведет к их оценке, и ваши журналы появятся.

http://jsbin.com/suheroya/1/edit

Кроме того, важно знать, что сама модель не меняется, поэтому вычисляемое свойство не будет вызываться снова и снова. Свойства модели меняются, и если вы хотите, чтобы вычисляемое свойство вызывалось снова и снова, вам нужно следить за этими свойствами.

25.04.2014
Новые материалы

Получение стоковых обновлений с помощью Python
Для начинающего финансового аналитика Введение Описание: Этот проект Python создает скрипт для получения текущих обновлений акций с финансового веб-сайта Yahoo. Для этого проекта мы..

Это все, что вам нужно знать о Kotlin в 2022 году
Добро пожаловать! Kotlin — это язык программирования, популярность которого, кажется, растет, его действительно можно использовать для создания чего угодно, и если вы хотите узнать о Kotlin,..

Текстовый графический интерфейс с Lanterna на Java
Мой опыт работы с компьютерами (и текстовыми графическими пользовательскими интерфейсами) начался еще в восьмидесятых, когда я был ребенком, на дне рождения друга. Это был «новенький» Amstrad..

Перезарядите свой мозг: умопомрачительный потенциал мозговых компьютерных интерфейсов
Способность читать свои мысли и управлять объектами разумом долгое время были предметом человеческого любопытства, ограниченного областью научной фантастики… то есть до сих пор? С технологией,..

Основы C# — Нулевой оператор объединения (??)
Оператор ?? называется null-coalescing operator . Этот оператор используется для предоставления значения по умолчанию, если значение операнда в левой части оператора равно null ...

Сравнение номеров версий в C++ с использованием синтаксического анализа строк
Номера версий обычно используются для обозначения развития или обновлений программного обеспечения или любого другого продукта. При работе с номерами версий в C++ может быть полезно сравнить две..

В мир искусственного интеллекта…
ИИ — это новое топливо в современном мире. Куда бы вы ни обратились, с кем бы вы ни разговаривали — они, как правило, упоминают об ИИ хотя бы раз в ходе разговора. ИИ гудит повсюду. У каждого..