Ember.js 无法在ember中使导航栏项目动态

Ember.js 无法在ember中使导航栏项目动态,ember.js,ember-cli,Ember.js,Ember Cli,我在application.hbs中放置了导航栏组件,以便它始终可见。但我想在每次访问页面时更改导航栏的标题(假设我在索引页面上,则应显示“主页”,如果我在配置文件页面上,则应显示“配置文件”,等等)。现在发生的情况是导航栏标题始终保持“主页”这是因为导航栏在浏览器中加载页面期间仅呈现在U上,之后不会根据页面进行更改 application.hbs {{top-navbar dp_url=model.profile.dp_url first_name=model.profile.first_na

我在application.hbs中放置了导航栏组件,以便它始终可见。但我想在每次访问页面时更改导航栏的标题(假设我在索引页面上,则应显示“主页”,如果我在配置文件页面上,则应显示“配置文件”,等等)。现在发生的情况是导航栏标题始终保持“主页”这是因为导航栏在浏览器中加载页面期间仅呈现在U上,之后不会根据页面进行更改

application.hbs

{{top-navbar dp_url=model.profile.dp_url first_name=model.profile.first_name title=title}}

{{outlet}}
在这里,我根据用户所在的页面计算标题的值

js(控制器)

在这里,
currentpage
有应用程序的当前url,我正在比较它并决定导航栏标题的值

但顶部导航栏标题值仅在用户首次在浏览器中加载应用程序时计算,而不是在我从一条路线移动到另一条路线时计算


我还尝试了
Ember.events
,但无法解决它。

我不知道您使用的是什么Ember.js和Ember数据版本,
currentState
,无论如何,看起来您使用的是一个专用于Ember内部的方法,而不是应用程序中使用的方法

实现您想要的目标的一种可能的(但可能不必要的复杂)方法是:

  • 使用要在导航栏中变化的信息创建模型(例如,
    导航栏数据
  • 在呈现导航栏的路径中,使用固定的数字ID(例如
    store.createRecord('navbar-data',{ID:1,title:“index”})
    )为导航栏创建并返回记录
  • 将创建的记录传递给组件(而不仅仅是字符串)
  • 无论何时要更改,请使用
    store.peekRecord('navbar-data',1)
    查看记录,并更改要在navbar中更改的值
  • 当然,用于该操作的记录必须而不是
    record.save()
    保存

    if (currentPage === "" || currentPage === "#"){
          currentState.set('title',"Home")
     }
    else if(currentPage === "Userprofile"){
          console.log('myStudio');
          currentState.set('title',"UserProfile");
    }