类型错误:无法读取未定义的属性“tigerStart”

2023-11-24

  • 我是打字稿和角度 js 的新手。
  • 我尝试将另一个组件代码包含到我的代码中。
  • 这是我的代码中的baby.js代码
  • 但我收到错误。类型错误:无法读取未定义的属性“tigerStart”
  • 你们能告诉我如何解决它吗?
  • 在下面提供我的代码
TypeError: Cannot read property 'tigerStart' of undefined
    at init.open (pen-pencil.ts:1270)
    at init.trigger (kendo.all.min.js:25)
    at init.open (kendo.all.min.js:45)
    at Penguin.openPopup (pen-pencil.ts:1286)
    at penguin.pencilClicked (headset.ts:689)
    at _View_penguin4._handle_click_45_0 (penguin.ngfactory.js:4087)
    at eval (core.umd.js:9698)
    at eval (platform-browser.umd.js:1877)
    at eval (platform-browser.umd.js:1990)
    at ZoneDelegate.invoke (zone.js:203)

将tigerStart方法包含到整个js代码中

@ViewChild(sports) 公共天空:体育;

that.window = $("#PenguinPopup");
that.window.kendoWindow({
  width: "60%",
  title: false,
  visible: false,
  resizable: false,
  actions: [],
  draggable: false,
  modal: true,
  open: function() {
    $("html, body").css("overflow", "hidden");
    that.isVisible = true;
    $('.kPopUpTitle').html(values.title);
    this.sky.tigerStart();

将鱼组件包含到我的 html 中

<div class="clearFloat"></div>
<ul class="kendu-custom-contextmenu" id="context-menuFinancialSearch">
  <li class="kPopUpBtnTriple">View Details</li>
  <li class="kPopUpBtnTriple">Manage Documents</li>
</ul>

<financeLeftSlider (savedSearchData)='getSaveEvent($event)'></financeLeftSlider>

<Fish></Fish>
<Penguin (documentCount)='getDocumentEvent($event)'></Penguin>
<sports></sports>

<div class="searchNameRequiredPopup">
  <div class="pipepobUpBox pipeWindow kPopupConfirmationBox">
    <div class="row pipePopUpGridCollection pipePopUpContent lineHeightInputs">
      <div class="pipeContent">Please enter the search name.</div>
    </div>
    <div class="clearFloat"></div>
    <div class="row pipePopUpFooter textAligncenterImp">
      <!-- <button class="commonBtn" type="button" id ="deleteDocumentYes">Yes</button> -->
      <button class="clearBtn" type="button" id="searchNameRequiredBtn">Ok</button>
    </div>
    <div class="clearFloat"></div>
  </div>
</div>

宝贝.html

<div id="baby"></div>
<div id="baby1"></div>

baby.js

@Component({
  moduleId: module.id,
  selector: 'sports',
  templateUrl: 'sports.html'
})

export class Star {

  tigerStart(): void {
    kendo.ui.sky($("#baby"), true);
  }
  tigerEnd(): void {
    kendo.ui.sky($("#baby"), false);

  }

  tigerStart1(): void {
    kendo.ui.sky($("#baby1"), true);
  }
  tigerEnd1(): void {
    kendo.ui.sky($("#baby1"), false);
  }

}
  • 当我打印这个时,我没有看到天空,所以我阅读了中等形式并尝试使用粗箭头和绑定,但我仍然无法实现它。
  • 在孩子看来我正在使用运动
  • 你能告诉我如何解决它吗?
  • 这样对将来会有帮助

https://medium.com/@thejasonfile/es5-functions-vs-es6-fat-arrow-functions-864033baa1a

@ViewChild(sports) public sky: sports;
**- tried with fat arrow**
open: () => {

**- tried with bind**
        this.sky.tigerStart().bind(this);

在这一行中:

this.sky.tigerStart();

你在期待着this.sky被设置为某事,但事实并非如此。那是因为this不是你想的那样;你不在scope你认为你在。添加一个console.dir(this)在此行之前,刷新页面,如果您想查看您的内容,请检查浏览器控制台this是。然后找出其他方法来解析您真正需要的对象。

Mozilla 开发者网络“this”的参考文章

请尝试以下操作:

// *** Assign this to a variable (self)
var self = this;

that.window = $("#PenguinPopup");
that.window.kendoWindow({
  width: "60%",
  title: false,
  visible: false,
  resizable: false,
  actions: [],
  draggable: false,
  modal: true,
  open: function() {
    $("html, body").css("overflow", "hidden");
    that.isVisible = true;
    $('.kPopUpTitle').html(values.title);

// *** use the self variable instead of this
    self.sky.tigerStart();

您在评论中提到的文章是正确的,但是如果您并不真正理解代码中发生的情况,那么如果您尝试执行其建议的操作,只会让您更加困惑。您可能想更多地了解变量作用域在 Javascript 中的工作原理。一开始有点令人困惑,但理解将帮助您更好地掌握 Javascript。我自己仍然有问题,但我在这里展示的方式相当容易理解。请记住,当您声明变量并在同一级别(或在这些函数内部)声明函数时,您可以从这些函数内部访问该变量(除非您在这些函数内部创建具有相同名称的新变量)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:无法读取未定义的属性“tigerStart” 的相关文章

  • TypeScript 中的“环境”是什么意思

    我不明白这个词是什么意思ambient在下面的句子中 不能在环境上下文中声明函数实现 我不确定是否理解这个词的一般含义 英语不是我的母语 如果这里有什么具体含义 我也不明白 我试图用我的母语来理解 但在这种情况下无法理解 这就像curren
  • Node.js ES6如何从模块导出类? [复制]

    这个问题在这里已经有答案了 我正在尝试从 Node js 6 2 0 中的 CommonJS 模块导出 ES6 类 class MyClass class contents here exports MyClass 然后将其导入到另一个模块
  • 正则表达式问题 - 在字符串中查找数字

    我目前正在使用 JavaScript 从字段中获取字符串 在该字段中通常会有 宽度 56 空隙 67 我需要做的是识别 1 440 范围内的两个数字 并将它们放入两个不同的字段中 字段 1 宽度 字段 2 无效 我已经研究过正则表达式 到目
  • 在 X 轴刻度上渲染 HTML

    我想在 D3 图表的 x 轴上渲染 HTML 基本上 我希望轴上的每个标签都是到数据中另一列的超链接 我试过了 x domain data map function d return a href d Name a 但它根本不起作用 我得到
  • firebase 返回 onSnapshot 承诺

    我正在使用 firebase firestore 并且正在寻找一种返回快照承诺的方法 onlineUsers i want to return onSnapshot return this status database ref where
  • 如果是数字,Chrome 会重新排序对象键,这是正常/预期的吗

    我注意到某些评估电子商务网站的某些鞋码并将其输出到屏幕上的代码会打乱 Chrome 中的顺序 给出的 JSON 可以是 7 9149 9139 10455 17208 7 5 9140 9150 10456 17209 8 2684 914
  • Phantomjs page.content 未检索页面内容

    我使用 Phantomjs 来抓取使用 JavaScript 和 Ajax 加载动态内容的网站 我有以下代码 var page require webpage create page onError function msg trace v
  • 对数组进行分组并获取计数[重复]

    这个问题在这里已经有答案了 假设我有这样的数组 foo bar foo bar bar bar zoom 我想将其分组 这样我就可以得到这样的计数 foo 2 bar 4 zoom 1 有没有一个实用程序可以做到这一点 只需使用该功能Arr
  • 如何使用nodejs获取目录中第一个扩展名为.txt的文件?

    我所有文件所在的目录是 usr home jordan 该目录下有很多文件 在目录本身中 但有一个文件以 txt 扩展名命名 使用nodejs和fs 我想将带有txt扩展名的第一个文件 或任何文件 放入 mytxtfilepath 中 我在
  • Angular 中的动态子组件

    我正在构建一个具有一致的元素列表设计模式的应用程序 如果我有一个 A 类型的对象 我会创建AComponent它接受a作为输入 然后创建另一个组件来迭代 A 列表 AListComponent 那么如果我有一个对象 B 我需要做同样的事情
  • 基于 ajax 的弹出窗口中的 Mathjax + CKEditor 4 + CKEditor

    我已经配置了 CKEditor 4 并且我的页面上有以下内容 我的页面中有一个 CKEditor 设置值的两个选项 这两个选项本身分别选项两个基于 ajax 的弹出窗口 这些基于 ajax 的弹出窗口包含 CKEditor 现在我有以下问题
  • jQuery/JavaScript:仅选择子级的第一个“层”

    我试图仅选择给定类型的子元素的第一 层 而不选择嵌套在另一个限定元素内的元素 例如 在 div div class special div class special div div div div class special div di
  • 检测 JavaScript 代码中的拼写错误

    在Python世界中 使用最广泛的静态代码分析工具之一 pylint has a 特别检查 https stackoverflow com questions 27162315 automated docstring and comment
  • jquery load() 去除脚本标签 - 解决方法?

    有谁知道 jquery load 的解决方法 去掉从外部内容加载的脚本标签 有很多文档证明这种情况发生 但在网上搜索了大约 4 个小时后我找不到解决方法 我正在加载动态生成的 div 类似于搜索结果页面 并且需要将 click 绑定到每个动
  • 访问影子 DOM 中的元素

    是否有可能查找 Shadow DOM 中的元素与蟒蛇硒 示例用例 我有这个input with type date
  • HTTPS 网站上的 ShareThis 按钮不可点击

    我已将 共享此 按钮添加到我的安全站点 现在单击它们时会产生错误 下面提到了错误 以前有人遇到过这个问题吗 阻止加载混合活动内容 http w sharethis com button buttons js http w sharethis
  • 使用 Ajax 和 PHP 上传图像

    我想将图像上传到我的服务器 并控制 HTML 代码中的 PHP 回显 为此 我想使用 jQuery Ajax 但我不知道如何使用 Ajax 将图像发送到 PHP 这是一个大学项目 所以我不能使用任何类型的插件 我的实际代码 HTML
  • React 不适用于 Android 4.4.2 Web 视图浏览器

    React 在我的 Android 手机上不起作用 我不认为这是我的代码错误 因为即使我写的唯一内容是 p hello world p 它仍然没有显示 在 chrome 远程吊顶上查看后 这显示了 Map is not defined 以前
  • 是否可以使用 fs.createWriteStream 在文件中间写入文本? (或者一般在 Node.js 中)

    我正在尝试写入文本文件 但不是像appendFile 那样在最后写入或通过替换整个内容 我看到可以选择从 fs createwritestream 的启动参数开始的位置 gt https nodejs org api fs html fs
  • 如何使用javascript取消设置变量? [复制]

    这个问题在这里已经有答案了 这是我到目前为止所尝试的 var nxt I am next window onscroll function var scr this pageYOffset if scr gt 400 console log

随机推荐

  • 包含 count 和 case 语句的 SQL 查询

    我需要找出有多少人在 3 个不同年份 2006 年 2007 年 2008 年 的报税期结束日期 fpe 的 60 天内 120 天内 180 天内 180 天内提交了 fil dt 纳税申报表 下面的陈述将给我所有的岁月 我需要对每年和每
  • Python中如何进行封装?

    这有什么问题吗 从客观和功能的角度来看 import sys class EncapsulationClass object def init self self privates dict privates protected a sel
  • 需要一个公式:从 0001 年 1 月 1 日 12:00 AM 以来的秒数中提取年份

    输入 自 0001 年 1 月 1 日以来的秒数 输出 该时间段内的整年数 我开发了一种我认为不是最佳解决方案的算法 我认为应该有一个不涉及循环的解决方案 请参阅代码块 1 了解算法 该算法 A 确定天数 B 根据闰年从天总数中迭代减去 3
  • NHibernate - 执行 SQL 来填充 DTO

    我有一些报告实例 其中执行存储过程比复杂的 QueryOver 语句更容易 更简单 我有一个 DTO 而不是一个实体 它表示从查询返回的数据 并希望将查询结果填充到 DTO 中 我正在使用命名查询和 session GetNamedQuer
  • 在 iOS 中对包含字母数字单词的数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个包含 10 个元素的数组 称为 products 默认情况下已排序 这是现在的当前日志 for int i 0 i
  • 如何将包含撇号的语句插入Sqlite数据库

    在我的 iPhone 应用程序中 我使用 Sqlite 数据库 我需要将文本存储在数据库中 文本包含撇号 例如 Insert into tbl insert values It is Steve s Shirt 如何将此类语句存储在Sqli
  • F# 中的策略模式

    在 C 中 我有以下代码 public class SomeKindaWorker public double Work Strategy strat int i 4 some code var s strat Step1 i some m
  • 如何让自定义元素在 Firefox 中工作?

    我有这个基本的自定义元素示例 它可以在 Chrome 中运行 但不能在 Firefox 中运行 有没有办法让它在 Firefox 中工作 没有聚合物 但可能是某种填充 我还启用了dom webcomponents enabled标记没有任何
  • 如何在没有 USB 连接的情况下在手机睡眠模式下调试 Android 应用程序

    我想这很棘手 通过 USB 连接 用于调试 和拔出 USB 时 手机的行为有所不同 不同之处在于睡眠模式 使用 USB 连接的手机似乎更活跃且响应更快 而没有 则更少 例如 我有一个闹钟来唤醒手机并调节音量 连接时 在睡眠状态下工作正常 每
  • 懒惰的、广度优先的一元玫瑰树展开是否可能?

    Data Tree包括unfoldTreeM BF and unfoldForestM BF使用单子操作的结果来广度优先构造树的函数 树展开器可以使用森林展开器轻松编写 因此我将重点关注后者 unfoldForestM BF Monad m
  • 将纬度和经度转换为 esri arcGIS MapPoint

    我在将纬度和经度值转换为 android esri arcGIS 地图点时遇到问题 这是我从 GPS 坐标获取纬度和经度值的代码 LocationManager lm String towers double lat double long
  • 如何在jsdoc中描述“对象”参数?

    My function does X and Y params object parameters An object containing the parameters params function callback The callb
  • 加载 EntityFramework 4.3.1 时出错

    我用 C 创建了一个 MVC 应用程序 我在我的解决方案中创建了一个名为 PhoneDomain 的新项目 这样做的目的是将我的数据和领域层与实际问题分开 我右键单击该项目并转到 添加库包引用 然后尝试添加 EntityFramework
  • 如何在 Angular 2 中将字符串的特定部分加粗

    我有一个 HTML 代码如下 div class row div class col 12 style margin top 15px margin bottom 10px description translate div div 我在用
  • 通过 Spark groupBy dataframe 查找时间戳的最小值

    当我尝试将数据框分组到列上时 尝试找到每个分组的最小值groupbyDatafram min timestampCol 看来我无法在非数字列上执行此操作 那么如何正确过滤 groupby 上的最小 最早 日期呢 我正在从 postgresq
  • LINQ Sum 溢出异常?

    我已经为 EventLogEntry 实现了自定义 IEqualityComparer public class EventLogEntryListComparison IEqualityComparer
  • 如何对列表列表中的每个列表进行排序

    如何对以下嵌套列表中的列表进行排序 功能sort仅适用于普通列表 lst 123 3 12 89 14 2 901 4 67 预期结果 3 12 123 2 14 89 4 67 901 这是一种非常简单的方法 无需任何包 列表理解 lst
  • 视口大小改变时自动刷新页面

    我正在为我的网站使用响应式和自适应媒体查询来适应智能手机 现在的问题是我的最大宽度移动查询以 480px 结束 这是大多数手机旋转的显示宽度 当手机侧放时 现在一些手机 比如 HTCdesire 的最大屏幕宽度为 533px 现在当用户第一
  • Gulp 错误:生成 EACCES

    gulpfile js use strict var gulp require gulp gulp paths src src dist dist tmp tmp e2e e2e require require dir gulp gulp
  • 类型错误:无法读取未定义的属性“tigerStart”

    我是打字稿和角度 js 的新手 我尝试将另一个组件代码包含到我的代码中 这是我的代码中的baby js代码 但我收到错误 类型错误 无法读取未定义的属性 tigerStart 你们能告诉我如何解决它吗 在下面提供我的代码 TypeError