Я задаю этот вопрос, потому что я не совсем понимаю, как думать о корнеплодах, как зависимость, передаваемая директивам.
У меня есть директива, которая должна отображать некоторую информацию из $rootScope...
Мне показалось, что мне нужно передать директиву $rootScope в директиву, но когда я пишу такую директиву, похоже, она работает.
.directive("myBar", function () {
return {
restrict: "E",
transclude: true,
replace: true,
template: '<div>' +
'<span ng-transclude></span>' +
'{{rsLabels.welcome}} {{rsUser.firstName}}!' +
'</div>'
}
})
Когда это нужно сделать?
.directive("myBar", function ($rootScope) {
return {
restrict: "E",
transclude: true,
replace: true,
template: '<div>' +
'<span ng-transclude></span>' +
'{{rsLabels.welcome}} {{rsUser.firstName}}!' +
'</div>'
}
})
Могу ли я и КАК использовать rootScope, если мне это нужно в функции ссылки директивы, или я должен делать это в контроллере директивы?
.directive("myBar", function ($rootScope) {
return {
restrict: "E",
transclude: true,
replace: true,
link: function (scope, element, attrs, rootScope) {
rootScope.rsUser = { firstName: 'Joe' };
rootScope.rsUser = { welcome: 'Welcome' };
},
template: '<div>' +
'<span ng-transclude></span>' +
'{{rsLabels.welcome}} {{rsUser.firstName}}!' +
'</div>'
}
})
Мои данные rootScope определены в функции запуска
.run(function ($rootScope) {
$rootScope.rsLabels = {
welcome: 'Welcome'
};
$rootScope.rsUser = {
firstName: 'Joe'
};
});
Спасибо!