Ember.js 此.transitionToRoute在我的控制器余烬中不工作
我使用一个控制器读取下拉菜单上选择的值,获取一些输入字段的参数,然后保存记录。它会创建记录并很好地接收信息。我的问题在于,当我试图在动作结束时转换到另一个页面时。我不断收到错误:Ember.js 此.transitionToRoute在我的控制器余烬中不工作,ember.js,ember-data,Ember.js,Ember Data,我使用一个控制器读取下拉菜单上选择的值,获取一些输入字段的参数,然后保存记录。它会创建记录并很好地接收信息。我的问题在于,当我试图在动作结束时转换到另一个页面时。我不断收到错误:无法读取未定义的属性“TransitionRoute” 我完全被难住了。有什么想法吗 这是我的控制器代码: var teamId; export default Ember.Controller.extend({ auth: Ember.inject.service(), actions: {
无法读取未定义的属性“TransitionRoute”
我完全被难住了。有什么想法吗
这是我的控制器代码:
var teamId;
export default Ember.Controller.extend({
auth: Ember.inject.service(),
actions: {
onSelectEntityType: function(value) {
console.log(value);
teamId = value;
return value;
},
createProcess: function(processName, processDescription) {
var currentID = this.get('auth').getCurrentUser();
let team = this.get('store').peekRecord('team', teamId);
let user = this.get('store').peekRecord('user', currentID);
let process = this.get('store').createRecord('process', {
team: team,
user: user,
name: processName,
description: processDescription
});
process.save().then(function () {
this.transitionToRoute('teams', teamId);
});
}
}
});
以下是相应的路线:
export default Ember.Route.extend({
auth: Ember.inject.service(),
model: function() {
var currentID = this.get('auth').getCurrentUser();
return this.store.find('user', currentID);
}
});
您应该清楚地了解Javascript中的这个关键字。关键字this仅取决于函数的调用方式,而不是定义函数的方式/时间/地点
function foo() {
console.log(this);
}
// normal function call
foo(); // `this` will refer to `window`
// as object method
var obj = {bar: foo};
obj.bar(); // `this` will refer to `obj`
// as constructor function
new foo(); // `this` will refer to an object that inherits from `foo.prototype`
请查看以了解更多信息
您可以将this缓存在正常变量this中,然后在回调中访问
var self = this;
process.save().then(function () {
self.transitionToRoute('teams', teamId);
});
ECMASCript 6引入了箭头函数,其作用域是词汇范围。在这里,这就像一个普通变量一样在范围内查找
process.save().then(() => {
this.transitionToRoute('teams', teamId);
});
您应该清楚地了解Javascript中的这个关键字。关键字this仅取决于函数的调用方式,而不是定义函数的方式/时间/地点
function foo() {
console.log(this);
}
// normal function call
foo(); // `this` will refer to `window`
// as object method
var obj = {bar: foo};
obj.bar(); // `this` will refer to `obj`
// as constructor function
new foo(); // `this` will refer to an object that inherits from `foo.prototype`
请查看以了解更多信息
您可以将this缓存在正常变量this中,然后在回调中访问
var self = this;
process.save().then(function () {
self.transitionToRoute('teams', teamId);
});
ECMASCript 6引入了箭头函数,其作用域是词汇范围。在这里,这就像一个普通变量一样在范围内查找
process.save().then(() => {
this.transitionToRoute('teams', teamId);
});
此
在回调函数中未定义。这里有几十篇,如果不是几百篇的话,关于这件事的帖子。解决这个问题的最简单方法是使用箭头函数,如=>这个.TransitionRoute
。另一种方法是在函数顶部设置一个self
变量并使用它。一个修正,可能有数千个,但公平地说,这可能是JavaScript最常见的问题。看看这个,否决票是什么?对我来说是个好问题!这个
是回调函数内部未定义。这里有几十篇(如果不是几百篇)关于此的帖子。解决此问题的最简单方法是使用箭头函数,如。然后()=>这个.TransitionRoute
。另一种方法是在函数顶部设置一个self
变量并使用它。一个更正,可能有数千个,但公平地说,这可能是人们使用JavaScript时最常见的问题。看看这个,否决票是怎么回事?对我来说这是个好问题!谢谢你。这对我理解这件事很有帮助谢谢你,这对我理解这件事很有帮助