$scope 值无法在控制器中读取
$scope value not able to read in controller
我不确定这有什么问题,但不知何故无法读取 $scope 的正确值。
这是我在控制器中的代码 -->
$scope.verifyMobile = SearchFactory.verify.query({uuid: uuid});
rest服务返回的JSON是-->
verifyNumber -- > {"id":1,"uuid":"2222","phoneNumber":"782941768355"}
我使用 gson.toString(verifyNumber Java class);
将 POJO 转换为 JSON
但是当我尝试在控制器进行服务调用后检查 phonenumber 的值时,它总是未定义。谁能帮忙。当我将值硬编码为返回 JSON 时,它工作正常但不支持服务。
alert(JSON.stringify($scope.verifyMobile).uuid);
您没有正确使用 $resource
。来自 Angular Documentation for $resource
:
The action methods on the class object or instance object can be invoked with the following parameters:
•HTTP GET "class" actions: Resource.action([parameters], [success], [error])
•non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
•non-GET instance actions: instance.$action([parameters], [success], [error])
query()
是 GET "class" 操作,因此正确的调用是:
SearchFactory.verify.query({uuid: uuid}, function(data){
//do something here on successful data retrieval
$scope.verifyMobile = data;
}, function(){
//do something here on failure
});
值得注意的是,原来的调用 确实 确实有效,但是因为它是异步调用,所以返回的是承诺,而不是实际数据。
同样值得注意的是,$resource
的标准化 HTTP 操作如下所示:
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
因此,您应该考虑在检索单个值时使用 get
而不是 query
,而不是修改 query
isArray
属性,每当可能。
我不确定这有什么问题,但不知何故无法读取 $scope 的正确值。
这是我在控制器中的代码 -->
$scope.verifyMobile = SearchFactory.verify.query({uuid: uuid});
rest服务返回的JSON是-->
verifyNumber -- > {"id":1,"uuid":"2222","phoneNumber":"782941768355"}
我使用 gson.toString(verifyNumber Java class);
将 POJO 转换为 JSON但是当我尝试在控制器进行服务调用后检查 phonenumber 的值时,它总是未定义。谁能帮忙。当我将值硬编码为返回 JSON 时,它工作正常但不支持服务。
alert(JSON.stringify($scope.verifyMobile).uuid);
您没有正确使用 $resource
。来自 Angular Documentation for $resource
:
The action methods on the class object or instance object can be invoked with the following parameters:
•HTTP GET "class" actions:
Resource.action([parameters], [success], [error])
•non-GET "class" actions:
Resource.action([parameters], postData, [success], [error])
•non-GET instance actions:
instance.$action([parameters], [success], [error])
query()
是 GET "class" 操作,因此正确的调用是:
SearchFactory.verify.query({uuid: uuid}, function(data){
//do something here on successful data retrieval
$scope.verifyMobile = data;
}, function(){
//do something here on failure
});
值得注意的是,原来的调用 确实 确实有效,但是因为它是异步调用,所以返回的是承诺,而不是实际数据。
同样值得注意的是,$resource
的标准化 HTTP 操作如下所示:
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
因此,您应该考虑在检索单个值时使用 get
而不是 query
,而不是修改 query
isArray
属性,每当可能。