2017-09-28 72 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); 
    }});