Javascript AngularJS$parse返回未定义的
我想调用资源的以下方法Javascript AngularJS$parse返回未定义的,javascript,angularjs,Javascript,Angularjs,我想调用资源的以下方法 if($scope.type === 'User') User.query($scope.query) else if($scope.type === 'Product') Product.query($scope.query) else Item.query($scope.query) 我发现了一些相似之处,于是决定使用eval 它起了很大的作用 eval($scope.type).query($scope.query).$promise... 但是
if($scope.type === 'User')
User.query($scope.query)
else if($scope.type === 'Product')
Product.query($scope.query)
else
Item.query($scope.query)
我发现了一些相似之处,于是决定使用eval
它起了很大的作用
eval($scope.type).query($scope.query).$promise...
但是jshint警告我使用eval并不酷。我决定使用Angular的$parse方法
var method = $parse($scope.type + '.query') //function (s,l,a,i){var v5,v6, ...
method($scope, $scope.query).$promise...
错误:
Cannot read property '$promise' of undefined
我的代码位于某个指令控制器中,我确信
eval($scope.type).query($scope.query).$promise
工作
编辑:
方法
是一些不可理解的函数,但存在。当我使用context=$scope和arguments调用它时,它返回undefined。Error说“$parse($scope,$scope.type+'.query”)($scope,$scope.query)”是未定义的。拆分每个进程,以便您可以看到该点的变量,以查看错误所在。首先调用$parse
,然后调用该方法,最后返回该方法的响应。例外说明了这一切,你真的可以自己做。同样作为参考[reference]()您尚未发布所有相关代码,但除非您拥有$scope.User.query
,否则它将无法按预期工作$解析和$scope。$eval不在内部执行eval。