类型错误:“这个...”不是一个函数[重复]

2024-01-15

我定义hostService如下。场景是我先打电话hostService.addListener()在控制器中,那么控制器可以通过以下方式发出消息$rootSceop.$emit, hostService应该可以处理它。

app.service('hostService', ['$rootScope', function ($rootScope) {    
    this.button = function () {
        Office.context.ui.displayDialogAsync("https://www.google.com", {}, function () {});
    }

    this.addListener = function () {
        $rootScope.$on("message", function (event, data) {
            this.button()
        })
    }

但是,问题是上面的代码会引发错误:

TypeError: this.button is not a function

有谁知道如何修理它?


我通过创建一个 self 变量来解决这个问题this对象,然后您可以从不同的范围调用它:

app.service('hostService', ['$rootScope', function ($rootScope) {    

    var self = this

    this.button = function () {
        Office.context.ui.displayDialogAsync("https://www.google.com", {}, function () {});
    }

    this.addListener = function () {
        $rootScope.$on("message", function (event, data) {
            self.button()
        })
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误:“这个...”不是一个函数[重复] 的相关文章

  • 如何通过aws-sdk(javascript或node)获取s3存储桶大小

    我尝试使用 javascript nodejs aws sdk 查找 获取 s3 存储桶信息 但没有找到这样的 api 如何通过 aws sdk javascript 或 node api 获取 s3 存储桶大小 信息 每天一次向 Clou
  • 在 Javascript 中本地化字符串

    我目前正在使用 resx文件来管理我的 NET 服务器端资源 我正在处理的应用程序还允许开发人员将 JavaScript 插入各种事件处理程序中以进行客户端验证等 对我来说本地化 JavaScript 消息和字符串的最佳方法是什么 理想情况
  • 使用 requirejs 加载外部脚本而无需访问配置

    我正在尝试在我正在编写的插件中加载数据表 javascript 库 问题是 当我加载外部资源时 我会遇到冲突 因为当我调用 require 时 数据表与某些内容发生冲突 这是错
  • Google Charts(AreaChart)如何检测缩放变化

    我正在画一个面积图 在覆盖层上有一些标记 我正在使用explorer选项 仅限水平 以便用户放大和缩小 问题是我找不到一种方法来通知缩放更改 以便有机会更新制造商位置 有一个图表范围变化事件 但它不是由 AreaChart 触发的 我尝试检
  • 具有材料设计的Angularjs无法实例化模块ngMaterial

    我已经使用 Bower 安装了 AngularJS 和 MaterialJS 凉亭安装角材料 并将 ngMaterial 注入我的应用程序 但出现此错误 Uncaught Error injector modulerr Failed to
  • javascript 和 PHP 中的正则表达式有什么区别吗?

    这是在 javascript 中验证电子邮件地址的正则表达式 我不确定是否可以直接在 PHP 中使用它 a z d u00A0 uD7FF uF900 uFDCF uFDF0 uFFEF a z d u00A0 uD7FF uF900 uF
  • 在 IE10 中禁用捏合放大

    在 IE10 触摸模式下 我希望仅使页面的特定部分可缩放 其余的不应该 我找到了这个 http msdn microsoft com en US library ie hh772044 aspx http msdn microsoft co
  • TRACKER:错误TRK0005:无法找到:“CL.exe”。该系统找不到指定的文件

    我尝试在 Windows 8 上的 Node js 项目中执行以下命令 npm 安装 电子邮件受保护 cdn cgi l email protection 但我收到一个错误 我不知道如何处理 TRACKER 错误TRK0005 无法找到 C
  • EJS在JS onload函数中访问express变量

    我知道你可以像这样获取 ejs 文件中变量的值 h1 h1 如果我要在同一个 ejs 页面的 onload javascript 函数中使用相同的标题变量 我将如何使用它 例如 这个函数产生一个控制台错误说 未捕获的语法错误 意外的标识符
  • 删除 Laravel Mix 中的临时文件

    我想在 laravel mix 构建期间或之后删除临时构建文件 这是我目前拥有的一些代码 但是del不工作 const mix require laravel mix const del require del compile sass i
  • 无法在渲染器进程中使用 Node.js API

    无法在 Electron 中使用任何与 Electron 或节点相关的操作 未定义获取错误过程 我检查了他们指导添加节点支持的各个地方 但这已经完成了 所以卡在这里 我的主要应用程序代码是 const electron require el
  • ReferenceError 和全局对象

    在浏览器中的 JavaScript 中window是全局对象 这意味着在全局范围内定义的每个变量都是window 那么为什么我会得到这个结果 console log window foo No error logs undefined co
  • toLocaleDateString() 在 Chrome 中如何工作?

    我理解了javascript方法toLocaleDateString 使用的计算机设置 让我们来W3Schools 示例 http www w3schools com jsref tryit asp filename tryjsref to
  • PhantomJS 网页内存消耗?

    是否有一种编程方式 因为我想在运行时自动执行 方式来查看网页在通过 PhantomJs 运行时使用了多少内存 我也在使用 casperjs 如果这有帮助的话 我已经搜索了很多但没有找到任何方法 PhantomJs 使用 QtWebKit 因
  • 如何修复 getImageData() 错误画布已被跨源数据污染?

    我的代码在本地主机上运行得很好 但在网站上却不起作用 我从控制台收到此错误 对于这一行 getImageData x y 1 1 data Uncaught SecurityError Failed to execute getImageD
  • 父指令属性更改时子指令不会更新

    这是对这两个问题的后续 在父指令和子指令之间传递参数 https stackoverflow com questions 42814530 pass argument between parent and child directives
  • Angular 2访问组件内的ng-内容

    我怎样才能访问 content 来自组件类本身的组件 我想做这样的事情
  • 为什么混合插值和表达式是不好的做法

    来自文档 在表达式内嵌入插值标记 Note AngularJS 指令属性采用任一表达式or带有嵌入表达式的插值标记 已经被考虑了不好的做法将插值标记嵌入表达式中 AngularJS 开发人员指南 插值 https docs angularj
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr
  • 如何设置 Firebase 用户的显示名称?

    根据Firebase网站上的JS Auth文档 它只展示了如何获取 displayName 以及如何更新 displayName 所以我尝试更新它 但这有点不合逻辑 因为你怎么能在不创建某些东西的情况下更新它呢 所以我的问题是 如何设置注册

随机推荐

  • 在 javac 中禁用 StringBuilder 优化

    在 Java 中使用普通字符串连接时 javac 会在可以使用的地方对其进行优化StringBuilder相反 或 Java 5 之前的 StringBuffer 就我而言 关闭所有这些 然后使用 bog 标准 append 方法进行字符串
  • 如何自动调整tinyMCE的大小?

    我有一个设置在 TextArea 上的 TinyMCE 并且我希望该编辑器区域始终占据其父 div 的所有空间 我有一个 JS 函数 可以获取当前空间并将 textarea style height 设置为它 但是当我启用 TinyMCE
  • 在 Android 应用程序中更改 HttpClient 的 OpenSSL 库

    我需要使用自定义 OpenSSL 库Http客户端在我的项目中 我已经编译了libcrypto so and libssl so对于 Android 并将文件放在 jniLibs 文件夹中 应用程序 Heartbleed Scanner 可
  • NodeJS 无限循环内存消耗

    我不知道这是否是 Node 或 V8 的错误 但如果我运行以下代码 节点进程会泄漏内存 GC 似乎从未启动 并且在几秒钟内它就消耗了 gt 1GB 的内存 这是意想不到的行为 我错过了什么吗 这是代码 for console log 1 1
  • WPF 中的身份验证和角色

    我正在WPF中做一个项目 我需要对用户进行身份验证并根据角色提供模块的可访问性 我有更好的方法在 WPF 中实现这一目标吗 这部分取决于您需要代码的安全程度 不过 对于所有用例 请使用模型 视图 视图模型模式 在每个 ViewModel 中
  • ContextWrapper 中的 NullPointer 异常

    我有一个名为 FileGeneration 的类 它扩展了 Activity在 FileGeneration 中我有一个名为 protected OutputStream openAndWriteFile Set the Context m
  • Internet Explorer 9 拖放 (DnD)

    有谁知道为什么以下网站拖放示例 以及许多其他在线教程 在 Internet Explorer 9 中不起作用 Chrome FireFox 和 Safari 都可以 http www html5rocks com tutorials dnd
  • Java 密钥库未通过 PKCS12 完整性检查,但 keytool 可以工作

    我有一些 PCKS12 证书 由两个环境以不同的方式提供服务 当我们上传到DEV环境时 java就可以解析它了 但它在产品上失败了 服务器是 Microsoft DotNet 解决方案 负责证书操作 生成的密钥库的密码为空 当我在 Wind
  • 如何修复 iframe 页面重新加载时的 chrome 闪烁

    在 iframe 中重新加载内容时 Chrome 会闪烁 是否可以通过任何方式避免这种情况 考虑 用 js 包装 a links 会产生一些神奇的效果 content html 中的元标记 我对 iframe 中的 html 有源代码控制
  • 使用“Powered By Chrome”和操作菜单打开自定义 WebView

    我最近注意到 当在一些 Android 应用程序中打开链接时 它们具有相似的外观和感觉 并且自定义操作菜单在自定义菜单下方带有 由 Chrome 提供支持 这里面使用了什么组件还是仍然是 ChromiumWebView 希望我希望将它们添加
  • R 中按特定年份聚合

    如果这个问题已经在 SO 上得到处理 我深表歉意 但我似乎还无法找到快速的解决方案 我正在尝试按特定年份聚合数据集 我的数据框包含 10 年期间每小时的气候数据 head df day month year hour rain temp p
  • 如何解决错误“模块 umap 没有属性 UMAP”..我尝试安装并重新安装 umap 但对我不起作用

    AttributeError module umap has no attribute UMAP 我尝试安装和重新安装不同的 umap 和 umap learn 库 但没有任何效果 To use UMAP你需要安装umap learn no
  • System.Data.OleDb.OleDbException - sql 中的语法错误

    我在这个 SQL 中有一个语法错误 string sSql SELECT OxygenTankInDetailTBL HBedNameID OxygenTankInDetailTBL LocationHB FROM OxygenTankIn
  • 如何使用 vscode 获取用户输入(无 html)

    Javascript 新手 我想知道如何在不使用 HTML 而仅使用 vscode 的情况下获取用户输入 有什么简单的方法可以将用户输入保存在变量中吗 就像是 var name input What is your name var nam
  • VB.NET 列表中的 If-Else

    我只是想知道 VB NET 中是否有一种方法可以查找列表中是否存在特定值或可以在我的 If else 条件中使用的值 我现在正在做的是使用这个 If ToStatus 1CE Or ToStatus 2TL Or ToStatus 2PM
  • 暂停函数,直到按下回车键为止 JavaScript

    JavaScript 新手 我知道这可能非常简单 但我无法弄清楚 我想执行一个函数 在函数中间暂停并等待用户按下 enter 键 这将允许函数再次继续 或者将调用另一个函数来触发 function appear document getEl
  • CouchDB 中的过滤和更新功能?

    这些功能是什么 我在哪里可以阅读有关它们如何工作的信息 CouchDB 权威指南没有对此进行解释 很奇怪 来自 CouchDB 权威指南 还有其他设计文档 正在引入的功能 撰写本文时 包括 update 和 filter 我们在这里没有深入
  • 在没有 Rails、ActiveRecord 或任何带有 RSpec 的数据库的情况下使用 FactoryGirl

    我想知道是否有人知道是否可以在没有上述任何先决条件的情况下使用 FactoryGirl 我想在驱动移动和 Web 甚至 API 的 UI 自动化测试时使用它来生成动态测试数据 我知道我可以创建一些自定义帮助器类 方法并使用 getter 和
  • 如何在 Rust println 中直接使用函数返回值

    Rust 允许以这种方式格式化打印变量 fn main let r f64 rand random println r 但这不起作用 fn main println rand random 它显示这个错误 31 println rand r
  • 类型错误:“这个...”不是一个函数[重复]

    这个问题在这里已经有答案了 我定义hostService如下 场景是我先打电话hostService addListener 在控制器中 那么控制器可以通过以下方式发出消息 rootSceop emit hostService应该可以处理它