在 AngularJS 中观察外部变量?

2023-12-27

我已经为 Chrome 应用程序中的串行通信编写了一个小型 JS 库,并且它本身运行良好。然而,我们在与 Angular 集成时遇到了一个问题:我没有办法从内部观察控制器外部串行对象的属性,而且我也无法找到解决方法。理想情况下,有一个计算成本不太高的解决方案,但在这一点上,我不排除某种方法将整个库转换为更适合 Angular 的格式。但是,在这种情况下,我不确定它是否应该采用服务或其他格式。任何帮助,将不胜感激。


只是从这里借用了这个想法:在 AngularJS 中,如何在 URL 哈希上添加 $watch? https://stackoverflow.com/questions/22002764/in-angularjs-how-do-i-add-a-watch-on-the-url-hash

$scope.$watch 接受函数作为第一个参数,所以你可以这样做:

$scope.$watch(function () {
    return mylib.myproperty
}, function (value) {
    // do stuff
});

更新: 正如评论中所指出的,当 mylib.myproperty 更改时,控制器直到下一个摘要循环才会知道它。由于 mylib 不支持角度,因此您需要使用普通的 javascript 回调机制:

mylib.on_myproperty_change(function(){
    $scope.$digest(); // this will cause the $watch to be re-evaluated
});

但从现在起你已经拥有了mylib.on_myproperty_change你真的不需要$watch任何东西,所以你可以删除手表,然后

mylib.on_myproperty_change(function(){
    //do the stuff that you did in the the $watch
    $scope.$digest(); 
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AngularJS 中观察外部变量? 的相关文章

  • 设置 JavaScript 对象的 length 属性

    假设我有一个 JavaScript 对象 function a var A this length function return A length this add function x A push x this remove func
  • 使用 vue.js 显示 json 结果

    您好 我尝试使用 vue js 显示 json 文件结果 目标是结果将显示在值上 这是我的代码 data return fetchData function var self this self http get api casetotal
  • 如何在 guildMemberAdd 中使用awaitReactions

    当用户连接到我的服务器时 我向他们发送消息 并且我想通过单击反应来继续授权 我怎样才能创建这个 我正在使用以下代码 robot on guildMemberAdd gMembAdd gt gMembAdd send Hi gMembAdd
  • 使用 JS 和 HTML 将当前 URL 插入链接

    所以 我已经阅读了类似的内容 但我仍然找不到更适合我正在做的事情的答案 我正在尝试使用 JS 获取当前页面 URL 并将其附加到社交媒体共享链接 如下所示 a href target blank 使用 Javascript 我成功地将当前
  • 当列表包含图像时,React Native FlatList 感觉很慢

    我为 avater 使用 64x64 图像 它的尺寸非常小 通过我的应用程序 滚动时帧率下降至 25 35 fps 如何优化 flatList 图像
  • 无法使用 Node.JS 将 null 值发送到 MySQL 数据库

    我正在尝试发送null使用 Node JS 到我的 MySQL 数据库 con query INSERT INTO Routes routeTrigger VALUES null title test function err result
  • 元素上的 jQuery touchSwipe 事件阻止滚动

    我有一些清单div元素垂直排序 使用jQuery TouchSwipe 插件 https github com mattbryson TouchSwipe Jquery Plugin添加了滑动事件来捕获左右滑动 想法是通过向左或向右滑动来从
  • Imperavi Redactor 内容未复制到隐藏文本区域

    我正在尝试使用因佩拉维编辑器 http imperavi com redactor 在这里控制我的富文本编辑 div class control group div class controls div div document ready
  • 如果只有一个元素发生变化,为什么 AngularJs 会更新数组/哈希映射的所有元素?

    我有一个简单的哈希图和一个以文本形式显示状态的简单方法 但是当我仅更新 1 个用户状态时 所有这些状态都会更新 为所有用户调用函数 有没有一种方法可以只更新一个元素而不是全部 示例代码在这里 只需看看当您单击 更改状态 按钮时控制台中会发生
  • 为什么这些 Javascript for 循环在 Firefox 上比 Chrome / Safari 上慢得多?

    我在搞基准网站jfprefs http jsperf com 并创建了我自己的基准http jsperf com prefix or postfix increment 9 http jsperf com prefix or postfix
  • 所有属性的 JavaScript getter

    长话短说 我现在的情况是想要一个 PHP 风格的 getter 但是是 JavaScript 的 我的 JavaScript 仅在 Firefox 中运行 因此 Mozilla 特定的 JS 对我来说没问题 我能找到的制作 JS gette
  • 将 Cordova console.log 写入文件

    有谁知道是否有可能console log写入文件或类似的东西 我已经记录了我的应用程序 但它仅写在控制台上 出于远程目的debugging我也需要将现有日志写入文件 我想创建一个文件并将日志写入该文件中 但这将使我复制现有的日志代码 因此
  • 按位非运算符

    为什么要按位运算 0 打印 1 在二进制中 不是0应该是1 为什么 你实际上很接近 在二进制中 不是0应该是1 是的 当我们谈论一位时 这是绝对正确的 然而 一个int其值为0的实际上是32位全零 将所有 32 个 0 反转为 32 个 1
  • 如何从 dataurl 在服务器上创建图像文件

    我有一个 dataurl 格式的图像 例如 data image jpeg base64 9j 4AAQSkZJRgABAQAAAQABAAD 2wBDAAMCAgMCAgMDAwMEAwME iiigAooooAKKKKACiiigAoo
  • $state.go 不适用于嵌套状态

    下面描述的我的问题与此处描述为错误的问题类似 https forum ionicframework com t blocker bug with state go navigation 11036 https forum ionicfram
  • 如何检查 URL 末尾是否有特定字符串

    我需要根据 URL 末尾的内容让覆盖层向下滑动 如果 URL 末尾有 faq 覆盖层下降 如何在 jQuery JavaScript 中做到这一点 如果您的网址看起来像这样http yourdomain com faq 你可以这样做 var
  • Ruby 数组到 Javascript 数组

    我有一个带有帐户 ID 的 Ruby 数组 我想将帐户 ID 的 Ruby 数组存储在 Javascript 数组中 我想知道最好的方法是什么 另外 当我尝试执行此操作时 Javascript 似乎认为如果只输入一个帐户 ID 则该 ID
  • 内联 YouTube 视频在 iOS 上的 cordova 应用程序中不起作用

    我用 cordova 开发了一个移动应用程序 我确实需要能够播放内联 YouTube 视频 我尝试了一段时间来解决它 我设置了属性playsinline to 1在 YouTube iframe API 中 I put
  • JavaScript 反静默技术来指示失败

    当错误确实发生并且函数无法继续执行时 在 JavaScript 中报告错误而不是依赖 null 和 undefined 是一个好方法 我可以想到三种方法 没做什么 抛出异常 assert 这是一个简单的示例场景 一个将传入的金额记入用户帐户
  • 获取不正确的日期,将时间戳转换为新日期

    我正在尝试将时间戳转换为日期 但得到的日期不正确 我正在开发一个使用 Angular 和 Typescript 的项目 我有这样的时间戳 1451642400 2016年1月1日 和1454320800 2016年2月1日 如果我编码 da

随机推荐

  • 使用 Apex Data Loader 将记录加载到具有主详细信息关系的对象中

    我需要将数据加载到两个对象中 我可以使用数据加载器将数据加载到一个对象中 第二个对象与第一个对象具有主从关系 因此我需要拥有 CSV 文件中第一个对象的记录的唯一记录 ID 如何将这些记录 ID 添加到我的 CSV 文件中 您可以在初始上传
  • 如何使用代码连接 dataSource 和 delegate - iOS Swift

    我试图更好地理解当您通过拖放到 viewController 图标通过 Xcode 中的 UI 进行连接时 数据源和委托插座如何在后台连接到 UITableView I found 这个线程 https stackoverflow com
  • 在删除不透明的 FFI 对象之前,垃圾回收需要多长时间?有可能以某种方式加快速度吗?

    我考虑将 Haskell 绑定编写到用 C 我会编写一个普通的 C 包装器 和 CUDA 编写的量子力学库 主要瓶颈始终是 CUDA 部分使用的 GPU 内存 在 C 中 处理起来非常高效 因为所有对象都有自动内存管理 即一旦离开作用域就会
  • 在基于 redux 的应用程序中生成 uid 的位置

    我正在构建一个 React Redux 应用程序 但我很难决定在哪里为我的数据生成 uid 为了简化事情 我将使用经典的待办事项应用程序示例来解释我的问题 我的应用程序比这复杂得多 我目前有 addTodo selectTodos upda
  • 自动平滑调整大小过渡 - 故事板的问题

    一段时间以来 我一直在尝试创建一个类 一系列类 在检测到相关对象的调整大小时 尝试停止对象的调整大小并为其创建平滑的调整大小动画 然而 我总是遇到一个问题 即在动画开始之前 对象在屏幕上以目标大小 闪烁 一秒钟 长话短说 经过一些认真的调试
  • 使用 EMGU CV C# 中的 HOGDescriptor 获取图像的 HOG 描述符

    如何使用 EMGU CV 和 C 计算图像的 hog 描述符向量 如果我做这样的事情 float f Image
  • 通过批处理将命令运行到 openssl 中

    我正在尝试在正常运行时间监控中设置一个自定义脚本 并让此命令运行 openssl 并让我传递给它的参数运行 openssl s client CAfile C apcerts certs quiet connect HOST PORT gt
  • 在PHP中,为什么我能够以静态方式访问非静态方法?

    在以下代码中 nonStatic 不是静态方法 即使如此 我也可以在不创建对象的情况下访问它 以静态方式 谁能帮助我理解 因为这在其他语言 如 Java 中是不可能的
  • 从 docker Inspection 获取标签值[重复]

    这个问题在这里已经有答案了 由于键有 我无法从地图列表中获取值 里面 docker inspect jenkins Config Labels com docker compose config hash 85bcf1e0bcd708120
  • NumPy 中 ndim 的真正作用是什么? [复制]

    这个问题在这里已经有答案了 考虑 import numpy as np gt gt gt a np array 1 2 3 4 gt gt gt a array 1 2 3 4 gt gt gt a ndim 1 维度1如何 我给出了三个变
  • 你能为 Ruby 中的 map(&:method) 语法提供参数吗?

    您可能熟悉以下 Ruby 简写 a是一个数组 a map method 例如 在 irb 中尝试以下操作 gt gt a a a 1 1 0 gt a a 1 1 0 gt gt a map class gt Symbol String F
  • 一个输入有多个验证器

    JSF 2 0 中的一个输入是否可以有多个验证器 例如 假设我要写一个用户名 并且用户名必须有 8 个字符 如果OK 则检查数据库中是否不存在该用户名
  • Epson POS 打印机 - 自动状态返回规格

    我正在尝试解释 Epson POS 打印机的自动状态返回 ASB 数据 我已使用 UB E20 技术参考指南 www amigopos com faq faq 262 aspx 中的一些示例代码成功与打印机取得联系 不幸的是 手册只说明了我
  • iOS 报亭:推送通知不会在后台启动应用程序

    我正在应用程序中实现报刊亭功能 尽管应用程序收到推送通知 但它不会在后台模式下启动 如果我点击通知警报 应用程序将启动 我可以看到字典中存在 content available 1 并且该问题已下载 但应用程序不会自动启动 我已添加到 pl
  • 使用 twitter bootstrap typeahead 时如何禁用 google chrome 建议列表?

    使用 twitter bootstrap typeahead 我在 typeahead 列表上方得到 google chrome 建议列表 document ready function ID TextBox typeahead sourc
  • Docker 使用 gosu 与 USER

    Docker有点总是有一个USER命令以特定用户身份运行进程 但一般来说很多事情必须以 ROOT 身 份运行 我见过很多使用ENTRYPOINT with gosu取消提升进程的运行权限 我仍然对是否需要感到有点困惑gosu USER 还不
  • 在Unity中使用抽象工厂作为注入工厂?

    我有一个抽象工厂注册用于在某些控制器实例中注入 我可以注册该抽象工厂并将其用作注入工厂吗 这就是我所拥有的 public interface ILevelFactory Levels Create RegisterType
  • 紧凑框架语音识别API或库

    到目前为止 我的研究告诉我 没有免费的语音识别库 这仍然是这种情况吗 因为我发现的所有帖子都是几年前的 如果我想让我的 WinMobile C 应用程序能够 是否有示例应用程序或任何我可以开始的东西 从输入中识别语音 看一下http www
  • 获取curl php中最后一个重定向的url

    大家好 我知道这是 StackOverFlow 上一个非常常见的话题 我已经花了整整一周的时间来寻找它 我有一个网址 abc com default asp strSearch 19875379 这进一步重定向到此网址 abc com de
  • 在 AngularJS 中观察外部变量?

    我已经为 Chrome 应用程序中的串行通信编写了一个小型 JS 库 并且它本身运行良好 然而 我们在与 Angular 集成时遇到了一个问题 我没有办法从内部观察控制器外部串行对象的属性 而且我也无法找到解决方法 理想情况下 有一个计算成