所以我试图有条件地设置一个变量。它基本上是处理第一次点击用户的情况 - 所以我想根据它有条件地设置它。我实例化了一个为我提取变量的模型,但是第一次没有实例化模型,所以我调用的函数得到了很好的结果。 undefined不是一个函数。我正在尝试的是 -
var filterInstance = $scope.filterModel.getChecks() ? $scope.filterModel.getChecks() : {};
基本上我想要filterInstance检查$ scope.filterModel.getChecks(),如果它未定义不是函数,则将其设置为空对象,否则使用$ scope.filterModel.getChecks()。有人能指出我在正确的方向吗?谢谢!
答案 0 :(得分:1)
为什么不这样做:
var filterInstance = ($scope.filterModel.getChecks && $scope.filterModel.getChecks()) || {};
这样,如果$scope.filterModel.getChecks
存在且$scope.filterModel.getChecks()
返回某些内容" truthy",则会在filterInstance
中设置,否则它是一个空对象。
答案 1 :(得分:1)
请改为尝试:
var filterInstance = $scope.filterModel.getChecks !== undefined ? $scope.filterModel.getChecks() : {};
答案 2 :(得分:1)
您应该检查引用该函数的属性,而不实际调用该函数。这是通过删除()
。
var filterInstance = $scope.filterModel.getChecks ? $scope.filterModel.getChecks() : {};