Интересно, как я могу инкапсулировать функциональность внутри угловой директивы в соответствии с книгой Роберта К. Мартина «Чистый код». Вместо этого я хочу опустить комментарии и использовать функции с именами говорящих.Угловой: как инкапсулировать логику в директиве?
Представьте этот код:
app.directive('myDirective' function() {
return {
link: function(scope) {
// initialize visual user state
scope.visualUserState = {
// some very detailed state initialization
}
}
})
инкапсулировать функциональность нагрузки, я хотел бы заменить этот код, как это:
app.directive('myDirective' function() {
return {
link: function(scope) {
scope.initializeVisualUserState = function() {
scope.visualUserState = {
// some very detailed state initialization
}
}
scope.initializeVisualUserState();
}
})
Что мне не нравится на втором подходе является то, что " loadDataFromServer "- это некоторая функциональность, которая используется только функцией ссылки, а не представлением, поэтому я нарушаю правило, в котором область действия должна содержать только данные и функции, которые используются для взаимодействия с представлением.
Также код не очень читается, я думаю.
Поскольку функциональность обрабатывает очень личные вещи в директиве, я думаю, что использование и введение услуги не является правильным способом.
Что было бы лучше использовать для инкапсуляции этой функции?