gpt4 book ai didi

javascript - 在 AngularJS 中观察外部变量?

转载 作者:数据小太阳 更新时间:2023-10-29 05:15:36 24 4
gpt4 key购买 nike

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

最佳答案

只是从这里借用了这个想法: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 更改时, Controller 直到下一个摘要 cicle 才会知道。由于 mylib 未启用 Angular ,因此您需要使用普通的 javascript 回调机制:

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

但是因为现在你已经有了一个 mylib.on_myproperty_change 你真的不需要 $watch 任何东西,所以你可以删除 watch 而只是

mylib.on_myproperty_change(function(){
//do the stuff that you did in the the $watch
$scope.$digest();
});

关于javascript - 在 AngularJS 中观察外部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com