我试图设置一个setTimeout,在一个开关内,在一个foreach内,在一个函数内…
TypeError: undefined不是对象(计算“this。数据’)
我试过了
import { DataProvider } from '../xml-provider';
constructor(private Data: DataProvider) { }
items = this.Data.xmldata['step']; //XML turned into array using
initiateStepActions(){
var actionsToTake = this.items[this.currentStep]['timed_actions'];
if (actionsToTake){
this.items[this.currentStep]['timed_actions'][0]['action'].forEach(function(foundAction){
switch (type) {
case 'customerchat':
var MesgObject = {text : foundAction['_']};
//setTimeout(() => {this.Data.broadcastCustomerChatMesg(MesgObject)}, Number(foundAction['$']['showAtSecond']));
//setTimeout (() => this.Data.broadcastCustomerChatMesg(MesgObject), Number(foundAction['$']['showAtSecond']));
//setTimeout ( (this.Data.broadcastCustomerChatMesg(MesgObject)).bind(this), Number(foundAction['$']['showAtSecond']));
//setTimeout (this.Data.broadcastCustomerChatMesg(MesgObject), Number(foundAction['$']['showAtSecond']));
setTimeout (function(this) { this.Data.broadcastCustomerChatMesg(MesgObject)}, Number(foundAction['$']['showAtSecond']));
TypeError: undefined is not an object (evaluating 'this.Data.broadcastCustomerChatMesg')
break;
case 'supportchat':
console.log('send a support chat message ');
break;
default:
console.log('defaulted');
} //end switch
});// end foreach
}
}
他们都得到未定义的错误。
当你写的时候
.forEach(function(foundAction){
此
不再引用您的类,而是引用匿名函数。您应该使用箭头函数
.forEach(fundAction => {
并在设置超时
中执行相同的操作,以避免传递此
引用。
问题内容: 我正在关注egghead.io上的视频教程,但是在尝试遵循他在创建工厂时的示例时,我一直收到“未定义角度”的参考错误,但是我包含了角度脚本 这是我的html页面: 这是我的JavaScript文件“ main.js”: 我已经读过几篇类似的文章,如果我写错了,请纠正我,但是我认为这与引导绑定有关,并且我尝试使用手动引导,但没有成功,仍然遇到相同的错误。 但是我想知道的是,为什么这可以在
问题内容: 我试图添加一个自定义过滤器,但是如果使用以下代码: 但是,如果这样做,我会在Firebug中得到:“ ReferenceError:angular未定义”。 应用程序的其余部分工作正常,我在标签div中使用ng-app而不在html标签中使用ng- app,并且在https://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.
问题内容: 我有以下几点: 当我在VS2014中构建它时,它给了我一条错误消息: 有人可以告诉我如何避免出现此消息吗? 问题答案: 解决此问题的一种方法是修改您的并将其设置为预定义变量之一,如Jayantha所说。 看起来像这样:
问题内容: 需要使用java.net.URL类进行的远程数据请求超时设置。经过一番谷歌搜索后,发现有两个系统属性可用于设置URL类的超时,如下所示。 我无法控制所有系统,也不希望每个人都继续设置系统属性。是否有其他选择可以进行远程请求,这将允许我设置超时。如果没有任何库,则最好使用Java本身。 问题答案: 如果您要打开from ,则可以通过以下方式设置超时时间: 您如何使用或将其传递给什么?
我正在将Angular 2与角度材料一起使用,我需要创建自定义主题,以便为组件使用自定义颜色。我遵循了有角度的文档,但我无法让它运行。 到目前为止我所做的: 1.我创建了一个文件my-theme.scss: 2.我将创建的SASS文件导入styles.css 3.我在.angular cli中引用了它。样式部分中的json文件: 我在本地主机下的网站告诉我“编译失败”模块未找到:“../node_
问题内容: React 在promise中没有定义。这是我的代码: 这是错误代码: 问题答案: 可能没有约束力。 如果您可以使用ES6语法,请尝试用箭头函数替换。它会自动绑定: 或手动绑定: