2014-12-01 5 views
0

Я новичок в AngularJS, и у меня есть проблемы с передачей службы в качестве атрибута директивы, думаю, что я сделал это несколько раз раньше, и это сработало, но на этот раз я получаю «undefined» как возвращаемое значение услуги.AngularJS, передавая службу как атрибут директивы [undefined]

Вот мой код

directive.js

'use strict'; 

/*global d3:false */ 

angular.module('myApp') 
    .directive('stogbars', function() { 


    return { 
     restrict: 'E', 
     scope: { 
     service: '=service' 
     }, 
     template: '<div id="stogbars"></div>', 
     link: function(scope) { 

     scope.$watch(service.data,function(){ 
      //my treatment (scope.service ---> undefined) 
     }); 
     } 

    }; 
    }); 

HTML страницы:

<div class="rgo-data-widget box-6"> 
    <div class="inner-box"> 
    <h3 class="inner-box-title">Title Goes Here</h3> 
    <div class="box-module"> 
     <div class="stogbars-box">      
      <stogbars service = theService></stogbars> 
     </div><!-- stogbars --> 
    </div><!-- box module --> 
    </div><!-- inner box --> 
</div><!-- widget --> 

я не могу создавать код услуги, так как это файл 700 строка. Спасибо за вашу помощь.

ответ

0

Вы вводили эту услугу в свой контроллер?

Ваш данный html будет работать только в том случае, если соответствующий контроллер имеет ссылку на эту услугу в области видимости.

Во-первых, впрыснуть службу в контроллере, а затем попробуйте положить

$scope.theService = theService; 

в контроллере.

+0

Боже, прошло уже два дня, когда я застрял здесь за эту глупую ошибку, спасибо большому помощнику :) – Dgn

+0

Сделано! Большое спасибо – Dgn

+0

Рад, что это помогло @Dgn (y) –

0

ли вы пробовали устранения пробелов, в вашем HTML:

<stogbars service="theService"></stogbars> 

?

+0

Да, я, как я уже сказал, использовал этот метод несколько раз раньше, чем в другом виде, но в этом он не работает. – Dgn

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