2014-12-10 2 views
1

У меня есть проблема с этим:AngularJS: Как привязать данные к Директиве?

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, он не связывает fstData, но если удалить {{fstData}}, и я положил что-то, что работает.

Я думаю, что я не могу привязываться к тегу, который содержит атрибут ng-controller, но мне нужен этот атрибут (args), потому что в myController я его использую.

Спасибо!

В myController у меня есть это:

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

Вы проверили [этот ответ] (http://stackoverflow.com/a/22575629/1431600)? –

ответ

0

Вы пробовали этот подход?

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); 
      } 
    } 
}); 
+0

Спасибо! Он работает частично, потому что внутри тега li у меня есть другая директива, которая использует «событие» для загрузки данных. Когда я это сделал, другая директива не работает. –

+0

использовать $ compile после добавления разметки. Он будет перекомпилировать этот элемент и ваши директивы – KaustubhSV

Смежные вопросы