Angular:将参数发送到指令

时间:2016-11-01 09:03:21

标签: javascript angularjs angularjs-directive url-parameters

我对Angular有点新意,我试图抓住如何以“正确”的方式使用Angular指令。

我的用例是我正在开发一个带有Angular& amp;的3D项目查看器。 ThreeJS。用户可以拥有可供他查看的不同“项目”。

我们想要利用项目识别的方式是通过url参数,以便一个人能够将特定项目链接到其他人进行查看。

Viewer / Renderer被定义为一个指令,因此我们可以将查看器定义为以下

...
    <viewer></viewer>
...

据我了解,有一些不同的方法可以将url参数传递给viewer-directive,我正在尝试利用$ stateParams从url访问参数。但是当我继续工作时,没有“明确”的方式来访问$ stateParams,但你必须将控制器连接到指令,然后从那里访问它。

这是预期的方法吗?或者我应该将其定义为viewer指令的属性?如果是这样,我如何访问html代码中的url参数?还是有第三个更好的选择?

你可能已经明白我对角度有点新意了,我主要想要掌握Angular的预期用法,这样我就不会在开始时搞砸了。

最好的问候,大卫。

2 个答案:

答案 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'
}