Установить Ember Application View Class только для домашней страницы

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я довольно новичок в Эмбер, так что полегче.:)

Я пытаюсь сделать так, чтобы класс отображался как "is-home" в div для представления приложения, которое отображается, если значение App.get ('currentPath') установлено в 'index'. Приведенный ниже код работает для установки класса, однако, он делает это только при загрузке. Если вы загрузите страницу и нажмете на ссылку, логика не будет перезапущена для удаления класса, если вы уходите с домашней страницы или добавляете ее, если вы вошли на другую страницу, но затем переходите на домашнюю страницу. Я убежден, что упускаю что-то простое.

Любая помощь будет оценена!

Текущий код (Примечание: я использую Ember App Kit)

// app/views/application.js

export default Ember.View.extend({
  classNameBindings: ['isHome'],
  isHome: function() {
    if (App.get('currentPath') == 'index') {
      return true;
    } else {
    return false;
    }
  }.property()
});

Функциональность App.get ('currentPath') основана на этом ответе /questions/24545134/poluchit-tekuschee-nazvanie-marshruta-v-ember/24545147#24545147.

1 ответ

Решение

Вы должны указать свойство обновлять, когда currentPath изменения собственности.

isHome: function() { ... }.property('currentPath')

Однако я не уверен на 100%, найдет ли он currentPath свойство в представлении, так как оно технически существует на контроллере. Возможно, вам придется смотреть controller.currentPath вместо.

Другие вопросы по тегам