Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何在init上基于模型解析进行POST调用_Ember.js - Fatal编程技术网

Ember.js 如何在init上基于模型解析进行POST调用

Ember.js 如何在init上基于模型解析进行POST调用,ember.js,Ember.js,我是余烬的新手,需要你的帮助 在application/route.js中,我需要根据模型得到的响应进行POST调用。route.js中的类似内容: export default Route.extend({ ajax: inject.service(), details: inject.service(), model() { return this.get('details').fetchAccount(); }, 所以,一旦模型在init上得到解决,我就需要

我是余烬的新手,需要你的帮助

在application/route.js中,我需要根据模型得到的响应进行POST调用。route.js中的类似内容:

export default Route.extend({
  ajax: inject.service(),
  details: inject.service(),

  model() {
      return this.get('details').fetchAccount();
  },
所以,一旦模型在init上得到解决,我就需要打个电话。模型具有状态,如果为true,则运行调用

init() {
    if (model.user) {
       ...
    }
}

有什么想法可以实现吗?

您可以指导
model
方法在
fetchAccount
方法的承诺得到解决时做什么:

model() {
  let fetchedAccount = this.get('details').fetchAccount();

  fetchedAccount.then(account => {
    doTheThingWith(account); // Obviously, your own code here
  });

  return fetchedAccount;
}

您可以指示
model
方法在
fetchAccount
方法的承诺解决时要做什么:

model() {
  let fetchedAccount = this.get('details').fetchAccount();

  fetchedAccount.then(account => {
    doTheThingWith(account); // Obviously, your own code here
  });

  return fetchedAccount;
}
如果
this.get('details').fetchAccount()未返回承诺,则可以尝试使用
setupController
hook

setupController(controller,model){
 this._super(...arguments);
 if (model.user) {
       ...
    }
}
这完全取决于模型解析后要执行的操作,是否要为控制器设置任何属性,然后可以使用setupController挂钩。

如果
this.get('details')。fetchAccount()
没有返回承诺,则可以尝试使用
setupController
挂钩

setupController(controller,model){
 this._super(...arguments);
 if (model.user) {
       ...
    }
}


这完全取决于模型解析后要做什么,您是否要将任何属性设置为控制器,然后您可以使用setupController挂钩。

您可以使用
afterModel
路线挂钩

您可以使用
afterModel
hook of route

谢谢你,克里斯!让我试试。嗨,克里斯,我出错了。TypeError:“调用者”和“参数”是受限制的函数属性,无法在此上下文中访问。我正试着这么做。然后(account=>{console.log(account);});我不确定我是否能够帮助你,但是你可能想考虑用代码从<代码> FETCAcQuangter()/代码>更新你的问题,以便其他人可以帮助你。我的主要经验是使用余烬数据,而不是滚动我自己的承诺结构。够公平了!谢谢你,克里斯!谢谢你,克里斯!让我试试。嗨,克里斯,我出错了。TypeError:“调用者”和“参数”是受限制的函数属性,无法在此上下文中访问。我正试着这么做。然后(account=>{console.log(account);});我不确定我是否能够帮助你,但是你可能想考虑用代码从<代码> FETCAcQuangter()/代码>更新你的问题,以便其他人可以帮助你。我的主要经验是使用余烬数据,而不是滚动我自己的承诺结构。够公平了!谢谢你,克里斯!我不使用余烬数据。我不确定它是否会起作用,但谢谢你的评论。即使你不使用余烬数据,你也可以使用它。我们也没有使用ember数据:)如果
fetchAccount()
返回一个承诺,在承诺解决后
afterModel
将执行路由钩子。我不使用ember数据。我不确定它是否会起作用,但谢谢你的评论。即使你不使用余烬数据,你也可以使用它。我们也不使用余烬数据:)如果
fetchAccount()
返回一个承诺,在承诺解决后
afterModel
将执行路由钩子。控制器上没有设置。解决问题后,如果是真的,我需要运行POST调用。您可以在
if
块中尝试运行POST调用。控制器上没有设置。解决问题后,如果是真的,我需要运行POST调用。您可以在
if
块中尝试运行POST调用。