Javascript Scope.attribute可用,但指令中未定义Scope.attribute.variable

Javascript Scope.attribute可用,但指令中未定义Scope.attribute.variable,javascript,angularjs,angularjs-directive,angularjs-scope,angularjs-resource,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,Angularjs Resource,我正在尝试一些angularJS开发,但我面临一个我完全不理解的问题 我尝试将JSON格式化为具有许多规则的特定表。现在,我的JSON看起来像: { "id":"test", "title":"Test Sample", "description":"Test Sample Description" } 它被加载到列表中: angular.module('myServices', ['ngResource']) .factory('MyData', ['$reso

我正在尝试一些angularJS开发,但我面临一个我完全不理解的问题

我尝试将JSON格式化为具有许多规则的特定表。现在,我的JSON看起来像:

{
    "id":"test",
    "title":"Test Sample",
    "description":"Test Sample Description"
}
它被加载到
列表中

angular.module('myServices', ['ngResource'])
   .factory('MyData', ['$resource',
       function($resource){
        return $resource('/rest/data', {}, {
            getSample: {method:'GET', url:'/data/sample.json', isArray:false}               
        });
       }
    ]);

angular.module('myControllers', ['myServices'])
    .controller('DataController', ['$scope', 'MyData',
        function($scope, MyData){
            $scope.list = MyData.getSample(); //retrive a simple JSON
        }
    ]);
然后,我尝试使用以下方法重新排列数据:

<div id="list" data-ng-controller="DataController">   
    <div data-table="view" data-list="list"></div>
</div>
但是下面是在
console.log()中发生的情况:
我有
范围

$$asyncQueue: Array[0]
$$childHead: null
$$childTail: null
$$destroyed: false
$$isolateBindings: Object
$$listeners: Object
$$nextSibling: null
$$phase: null
$$postDigestQueue: Array[0]
$$prevSibling: null
$$watchers: Array[1]
$id: "007"
$parent: a
$root: h
list: Resource
this: h
__proto__: h
我有
范围。列表
(标记为
资源
):

但是
scope.list.title
被标记为
undefined

我的搜索导致某些属性可能未在链接中设置,但为什么
scope.list
仍然可用,而不是其属性

我还尝试将
范围
设置为
进入
指令,但没有更好的结果


我将要创建一个complexe表,所以我必须在这个div和表中应用非常具体的规则。我不能简单地用一些
ng If

$scope.list
是一种承诺。在您的情况下,承诺已经解决,因此
$resolved:true
。但这仍然是一个承诺

从:

$PROMITE:创建的原始服务器交互的承诺 此实例或集合

成功后,将使用相同的资源实例或 集合对象,使用服务器中的数据更新。这使它变得容易 在$routeProvider.when()的resolve部分中使用延迟查看 在加载资源之前进行渲染

因此,在Angular 1.2+中,您希望执行类似的操作,使用promise的
$promise
属性提供回调。一旦承诺被解析,回调将被调用,并显示结果(在您的情况下,由于承诺已经被解析,回调将立即执行)


下面是一个使用$httpbackend来模拟服务器响应的示例。

这是一个完美的答案,感谢您为我指出正确的文档段落。我完全不知道那些$PROMITE和$RESOLED属性
$$asyncQueue: Array[0]
$$childHead: null
$$childTail: null
$$destroyed: false
$$isolateBindings: Object
$$listeners: Object
$$nextSibling: null
$$phase: null
$$postDigestQueue: Array[0]
$$prevSibling: null
$$watchers: Array[1]
$id: "007"
$parent: a
$root: h
list: Resource
this: h
__proto__: h
$promise: Object
$resolved: true
description: "Test Sample Description"
id: "test"
title: "Test Sample"
__proto__: Resource
link: function(scope,$element, attrs){
         scope.list.$promise.then(function(results) {
            console.log(results);
            console.log("title ",results.title);
         });
      }