Javascript Ng使用字符串&;ng重复属性

Javascript Ng使用字符串&;ng重复属性,javascript,angularjs,Javascript,Angularjs,我试图在ng repeat中动态构建一个编码查询,然后将其传递到typeahead指令中 我知道我可以传入整个ng repeat项,类似于此JSFIDLE: 我知道可以很容易地将字符串传递到指令属性中 有办法做到这两个吗 基本上,在上面的小提琴中,我想做一些类似的事情: <div ng-repeat="image in images"> <typeahead-directive image='"encoded_query=" +

我试图在ng repeat中动态构建一个编码查询,然后将其传递到typeahead指令中

我知道我可以传入整个ng repeat项,类似于此JSFIDLE:

我知道可以很容易地将字符串传递到指令属性中

有办法做到这两个吗

基本上,在上面的小提琴中,我想做一些类似的事情:

    <div ng-repeat="image in images">            
        <typeahead-directive image='"encoded_query=" + image' ></div>
    </div>

我尝试过这样做,它在控制台中工作,但ng repeat属性实际上并没有存储在指令中:

    <div ng-repeat="image in images">            
        <typeahead-directive image='encoded_query={{image}}' ></div>
    </div>

有什么建议吗

有办法做到这两个吗

在your指令中,您可以使用
$attrs
获取
图像
属性的字符串值

您可以使用
$eval
从您的
图像
属性获取对象

你的HTML

<div ng-repeat="image in images">            
      <div myimg image='image' ></div>
</div>

指令

myModule.directive('myimg', function(){
    return{
        restrict: 'A',
        scope: false,
        template: '<p>{{image.title}}</p><img src="{{image.url}}" />',
        controller: ['$scope','$attrs', function($scope, $attrs) {
            console.log($attrs.image);
            console.log($scope.$eval($attrs.image));
        }]
        /*link:function(scope, elem, attr){
            console.log(attr.image);
            console.log(scope.$eval(attr.image));
        }*/
    };
});
myModule.directive('myimg',function(){
返回{
限制:“A”,
范围:假,
模板:“{{image.title}

”, 控制器:['$scope','$attrs',函数($scope,$attrs){ log($attrs.image); log($scope.eval($attrs.image)); }] /*链接:功能(范围、要素、属性){ console.log(attr.image); console.log(scope.$eval(attr.image)); }*/ }; });
控制器本地属性记录在

$eval
功能记录在

还要注意,我设置了
scope:false
,因为您的指令实际上不需要作用域。

如果typeahead指令有自己的作用域,请尝试image=“encoded\u query={{{$parent.image}”。