我有以下服务:
myapp.service('myService', function () {
var familyList = this;
familyList.people = [
{ name: 'Jax', dob: '01/01/1974', cell: '3035551212', carrier: 'ATT', email: 'jax@soa.com', active: true },
{ name: 'Tara', dob: '03/01/1974', cell: '3035551313', carrier: 'SPRINT', email: 'tara@soa.com', active: false }];
});
我有以下指令:
myapp.directive('applyplugin', function () {
return {
link: function ($scope, myService) {
$scope.myService = myService;
alert(myService.people.length);
$("select[id^='ms']").each(function () {
$(option).remove();
});
}
}
});
我可以从指令中引用familyList数组吗?
答案 0 :(得分:1)
当然,但是服务(依赖关系)注入不会发生在link
函数中,而是在一个definig指令中。
代码变为:
myapp.directive('applyplugin', function (myService) {
return {
link: function ($scope) {
$scope.myService = myService;
alert(myService.people.length);
$("select[id^='ms']").each(function () {
$(option).remove();
});
}
}
});
你不能在link
函数中注入任何东西,它的签名是固定的并且是link(scope, element, attributes, ...requiredDirectives) {... }
(你大部分时间都不会使用最后一个参数,它适用于指令需要使用的时候另一个使用^someDir
语法)
注意:您可能希望在链接函数中使用此element
参数仅影响指令中的元素:element.find("select[id^='ms']").each( ... )