2017-09-28 73 views
0

user.json文件只有一个条目:AngularJs资源的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

+0

是什么的'输出console.log(user);' –

+0

'code'l {promise}:f $ resolved:true diskPa个: “d:nwjs” ID:1个 IP: “255.255.255.0” 密码: “密码” 端口: “80” 协议: “HTTP” 用户名: “fusemanager” __proto __:对象 }'代码' –

回答

0

它看起来像你的工厂返回的承诺,在这种情况下,你需要从承诺中提取数据。

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

Getting Error => TypeError:duseConnect.get(...)。然后不是函数(...) –

+0

This is working.'fuseConnect.get({id:1})。$ promise.then(function(用户){ console.log(user.id); console.log(user.userName); });' –

0

$资源的回报是与可选扩展与自定义操作的资源操作的默认设置方法的资源“类”对象。默认集包含以下操作:

{ '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); 
    }});