AngularJs 资源 Json 错误

AngularJs Resource Json Error

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);

的输出

output

您的工厂似乎正在返回 promise,在这种情况下,您需要从 promise 中提取数据。

duseConnect.get({id: 1}).then (function(user) {
   console.log(user);
   console.log(user.id);
});

$resource 的 return 是一个资源 "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);
    }});