Javascript 嵌套对象中的Angularjs$scope.object
我有一个$scope.currentUser对象和一个嵌套的OwnedCompany对象,如下所示:Javascript 嵌套对象中的Angularjs$scope.object,javascript,angularjs,Javascript,Angularjs,我有一个$scope.currentUser对象和一个嵌套的OwnedCompany对象,如下所示: app.controller 'dashboardsCtrl', ($scope, Api, Auth) -> $scope.currentUser = Api.User.get(id: Auth.user()) $scope.ownedCompany = $scope.currentUser.owned_company {{currentUser}}返回: user: {
app.controller 'dashboardsCtrl', ($scope, Api, Auth) ->
$scope.currentUser = Api.User.get(id: Auth.user())
$scope.ownedCompany = $scope.currentUser.owned_company
{{currentUser}}
返回:
user: {
"name": "Ryan",
"owned_company":{"name":"XYZ"}
}
{"name":"XYZ"}
{name:"XYZ"}
{{currentUser.owned_company}
返回:
user: {
"name": "Ryan",
"owned_company":{"name":"XYZ"}
}
{"name":"XYZ"}
{name:"XYZ"}
但是{{ownedCompany}}
返回nil
如何让
$scope.ownedCompany=$scope.currentUser.ownedCompany
正常工作
解决方案 根据@mohamedrias的回答
app.controller 'dashboardsCtrl', ($scope, Api, Auth) ->
Api.User.get(id: Auth.user()).$promise.then (currentUser) ->
$scope.currentUser = currentUser
$scope.ownedCompany = currentUser.owned_company
{{ownedCompany}
返回:
user: {
"name": "Ryan",
"owned_company":{"name":"XYZ"}
}
{"name":"XYZ"}
{name:"XYZ"}
这是一个异步调用,从中获取当前用户详细信息。所以以后会解决的
要么你必须使用诺言,要么你必须使用承诺
$scope.ownedCompany = $scope.currentUser.owned_company
在然后块内
否则,在该对象上注册一个监视,并执行赋值。您确定在写入变量名时没有错误吗??或者在字符大小写中??如果在运行时更改了currentUser.owned_company
,则在更改发生后使用手表或设置值-$scope.currentUser.owned_company
返回具有属性名称的对象,因此请尝试{{ownedCompany.name}
使用$watch(或不使用$watch)获取XYZ
,效果非常好。我将为我的问题添加解决方案。谢谢你,穆罕默德。