我对 AngularJS 有很好的了解,但我更像是一名 R 程序员,因此我正在尝试使用 OpenCPU js 库。
我无法理解的一件事是为什么我无法将简单 API 请求的输出分配给公共(public) OpenCPU 服务器 rnorm(n = 2) 函数,并将其分配给 Angular $scope。让我困惑的是,我可以使用 jquery 通过 ID 分配返回的 json。
据我了解,最佳实践是不要将 jquery 混合到 Angular Controller 中。我的想法对吗?
使用 Jquery
app.controller('rCtrl', function($scope){
req = ocpu.rpc('rnorm',{
n : 2
}, function(output){$('#output').text(output)});
})
$范围不工作
app.controller('rCtrl', function($scope){
req = ocpu.rpc('rnorm',{
n : 2
}, function(output){$scope.normalValues = output)});
})
最佳答案
由于您使用的是非 Angular 工具,因此您将在 Angular 摘要循环之外分配 $scope.normalValues 。使用 $scope.apply() 来解决这个问题:
app.controller('rCtrl', function($scope){
req = ocpu.rpc('rnorm',{
n : 2
}, function(output){
$scope.$apply(function(){
$scope.normalValues = output;
});
)});
});
您也可以在设置范围值后立即调用 $scope.$apply() 但我个人喜欢回调语法,因为它可以更轻松地了解您使用它的原因。
关于javascript - 在 OpenCPU 中使用 AngularJS $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32977877/