gpt4 book ai didi

javascript - 将分配替换为延迟分配

转载 作者:行者123 更新时间:2023-12-03 07:48:43 24 4
gpt4 key购买 nike

在我的 angular.js 页面中,我使用我需要的所有属性扩展了 $scope 。之前,我只是简单地扩展了 $scope

angular.extend($scope,{
myAttr : aService.getValues()
});

然而,事实证明我必须向 aService.getValues 添加一个 promise ( Angular 文件访问)。因此,我不能保留上面的语法,而是必须将其替换为

angular.extend($scope,{
myAttr : null
});
aService.getValues().then(function(values){$scope.myAttr = values;})

这很烦人,因为我必须替换相当多的代码,并且害怕添加错误。还有其他选择吗?

最佳答案

我唯一可以建议的是稍微漂亮地重新设计您自己的解决方案:

aService.getValues().then(function(values) {
angular.extend($scope, {
myAttr: values
})
});

同步扩展 $scope 是否至关重要?如果是,我看不到任何其他方式将异步数据输入其中的方法。

编辑

如果您要重新设计逻辑,请考虑将 $stateProviderresolve 属性一起使用:https://github.com/angular-ui/ui-router/wiki (向下滚动到讨论决心的部分)。长话短说,resolve 中的所有内容都必须在状态 Controller 初始化之前运行。这样您就可以在解析中执行所有异步操作,并且只有在您拥有所需的一切后才加载它。

关于javascript - 将分配替换为延迟分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35096547/

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