我对此有疑问:

app.directive('myDirective', function(){
    return{
        retrict: 'EA',
        replace: false,
        scope:{
            fstData: '@',
            sndData: '@'
        },
        template: '<div ng-controller="myController" arg="{{fstData}}"><h3>{{sndData}}</h3><li ng-repeat="event in eventsCat"></li></div>'
    }
});


当我在HTML中创建my-directive标记时,它不会绑定fstData,但是如果我删除{{fstData}},然后放入一些东西,它将起作用。

我认为我无法绑定包含ng-controller属性的标签,但是我需要此属性(args),因为在myController中我使用它。

谢谢!

在myController中,我有:

app.controller('myController', function($scope, $attrs){
var myVar = myArray[$attrs.arg];

最佳答案

您是否尝试过这种方法?

app.directive('myDirective', function(){
    return{
            retrict: 'EA',
            replace: false,
            scope:{
                fstData: '@',
                sndData: '@'
                },
            link: function(scope ,element , attrs)
            {
               var markup =  '<div ng-controller="myController" arg="'+scope.fstData+'"><h3>'+scope.sndData+'</h3><li ng-repeat="event in eventsCat"></li></div>' ;
               element.append(markup);
            }
    }
});

09-11 20:27