我对Angular有点新意,我试图抓住如何以“正确”的方式使用Angular指令。
我的用例是我正在开发一个带有Angular& amp;的3D项目查看器。 ThreeJS。用户可以拥有可供他查看的不同“项目”。
我们想要利用项目识别的方式是通过url参数,以便一个人能够将特定项目链接到其他人进行查看。
Viewer / Renderer被定义为一个指令,因此我们可以将查看器定义为以下
...
<viewer></viewer>
...
据我了解,有一些不同的方法可以将url参数传递给viewer-directive,我正在尝试利用$ stateParams从url访问参数。但是当我继续工作时,没有“明确”的方式来访问$ stateParams,但你必须将控制器连接到指令,然后从那里访问它。
这是预期的方法吗?或者我应该将其定义为viewer指令的属性?如果是这样,我如何访问html代码中的url参数?还是有第三个更好的选择?
你可能已经明白我对角度有点新意了,我主要想要掌握Angular的预期用法,这样我就不会在开始时搞砸了。
最好的问候,大卫。
答案 0 :(得分:2)
您可以访问url parameters via scope
,因为您将传递一个字符串,因此@
更有意义:
scope: {
datasource: '@'
}
在你的指令中你可以传递这样的值:
<viewer datasource={{urlParamValue}}></viewer>
在你的controller
中,你可以收集这样的url params:
function Controller($scope, $location){
var urlParamValue = $location.search().urlParamValue;
}
答案 1 :(得分:1)
您可以使用以下方式进行双向绑定。
scope: {
datasource: '=datasource'
}