我是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 :(得分:0)
您是否尝试在HTML中删除空格:
<stogbars service="theService"></stogbars>
答案 1 :(得分:0)
您是否在控制器中注入了该服务?
只有当相应的控制器在范围内具有该服务的引用时,您给定的html才会起作用。
首先,将服务注入您的控制器,然后尝试添加
$scope.theService = theService;
在您的控制器中。