user.json文件只有一个条目:
{
"id": 1,
"protocol": "http",
"ip": "255.255.255.0",
"port": "80",
"userName": "usemanager",
"password": "password",
"diskPath": "D:nwjs"
}
工厂代码:
duseApp.factory('duseConnect', function ($resource) {
return $resource("user.json");
});
控制器代码:
duseApp.controller("duseLoginController", function ($scope,duseConnect,
$location) {
var user = duseConnect.get({id: 1});
console.log(user);
console.log(user.id);
});
用户获取列出。
但是console.log(user.id); is undefined
。
为什么会这样?
console.log(user);
答案 0 :(得分:0)
看起来您的工厂正在返回承诺,在这种情况下,您需要从承诺中提取数据。
duseConnect.get({id: 1}).then (function(user) {
console.log(user);
console.log(user.id);
});
答案 1 :(得分:0)
$ resource的返回是一个资源" class"具有默认资源操作集的方法的对象,可选择使用自定义操作进行扩展。默认设置包含以下操作:
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'}
};
使用它的方式可能是:
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
})
在您的情况下,您可以执行以下操作:
duseApp.controller("duseLoginController", function ($scope,duseConnect,
$location) {
var user = duseConnect.get({id: 1}, function (response) {);
console.log(response);
console.log(response.id);
}});