Angularjs 访问指令内部的作用域属性

Angularjs 访问指令内部的作用域属性,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我打电话给指令的是: <latest-survey survey="latestSurvey"></latest-survey> console.log(范围)行输出范围: Scope {$id: "007", $$childTail: null, $$childHead: null, $$prevSibling: null, $$nextSibling: null…} $$asyncQueue: Array[0] $$childHead: null $$childTa

我打电话给指令的是:

<latest-survey survey="latestSurvey"></latest-survey>
console.log(范围)
行输出范围:

Scope {$id: "007", $$childTail: null, $$childHead: null, $$prevSibling: null, $$nextSibling: null…}
$$asyncQueue: Array[0]
$$childHead: null
$$childTail: null
$$destroyed: false
$$isolateBindings: Object
$$listenerCount: Object
$$listeners: Object
$$nextSibling: 
$$childScopeClass
$$phase: null
$$postDigestQueue: Array[0]
$$prevSibling: null
$$watchers: Array[3]
$id: "007"
$parent: 
$$childScopeClass
$root: Scope
survey: Object
this: Scope
__proto__: Scope
如您所见,
survey
列在那里,我可以在控制台中浏览它以查看其属性。但是,下一行
console.log(scope.survey)
输出:

undefined

如何访问作用域内的此对象?

是否在控制器中异步加载调查(最新调查)?
scope.survey
未定义的原因之一可能是请求未完成且项目为空


我建议您尝试使用一些虚拟数据设置
$scope.latestSurvey
,看看问题是否仍然存在。

如果在指令模板中使用
{{survey}
会发生什么?它列出了调查对象。我可以在模板中访问它,但由于某种原因不能在链接函数中访问。看起来非常好。尝试发布一个代码段或小提琴?尝试将控制台日志od scope.survey包装到
$timeout
中,并记录超时0和100的情况。是的,它是异步加载的。我如何让它在指令作用域出现时更新它?您可以使用“@”而不是“=”,或者您可以添加一个加载屏幕并隐藏内容,然后在承诺完成后显示它。您必须使用angularjs
$interceptor
。到目前为止,我看到的最好的实现是。或者您可以使用
$watch
查看内容是否已更改,但使用
$watch
则表明架构不好,usually@babbaggeii这个建议基本上就是我开始的答案with@salniro我对“@”有一些问题,有时不得不添加
$watch
:/。但我也把你的票投了上去:)@CristiBerceanu
$observe
上的
attrs
在这种情况下可能更合适,但无论如何。我做了一个编辑,将其包括在OP中
undefined