Как динамически изменить заголовок на основе частичного представления AngularJS?

Как указывает Триптих, вы можете вызвать любую глобальную функцию области видимости, найдя ее в содержимом объекта хоста.

Более чистый метод, который значительно загрязняет глобальное пространство имен, заключается в том, чтобы явно включить функции в массив прямо так:

var dyn_functions = [];
dyn_functions['populate_Colours'] = function (arg1, arg2) { 
                // function body
           };
dyn_functions['populate_Shapes'] = function (arg1, arg2) { 
                // function body
           };
// calling one of the functions
var result = dyn_functions['populate_Shapes'](1, 2);
// this works as well due to the similarity between arrays and objects
var result2 = dyn_functions.populate_Shapes(1, 2);

Этот массив также может быть свойством какого-либо объекта, кроме глобального объекта-хоста, также означающего, что вы можете эффективно создать собственное пространство имен так, как многие JS-библиотеки, такие как jQuery do , Это полезно для уменьшения конфликтов, если при включении нескольких отдельных библиотек утилиты на одной странице и (в других частях вашего разрешения) можно упростить повторное использование кода на других страницах.

Вы могли бы также используйте такой объект, который вы можете найти более чистым:

var dyn_functions = {};
dyn_functions.populate_Colours = function (arg1, arg2) { 
                // function body
           };
dyn_functions['populate_Shapes'] = function (arg1, arg2) { 
                // function body
           };
// calling one of the functions
var result = dyn_functions.populate_Shapes(1, 2);
// this works as well due to the similarity between arrays and objects
var result2 = dyn_functions['populate_Shapes'](1, 2);

Обратите внимание, что с помощью массива или объекта вы можете использовать любой способ установки или доступа к функциям и, конечно, хранить другие объекты там тоже. Вы также можете уменьшить синтаксис любого из методов для contant, который не является таким синтаксическим с использованием буквенной нотации JS, например:

var dyn_functions = {
           populate_Colours:function (arg1, arg2) { 
                // function body
           };
         , populate_Shapes:function (arg1, arg2) { 
                // function body
           };
};

Редактирование: конечно, для более крупных блоков функциональности вы можете расширить приведенные выше очень распространенный «шаблон модуля», который является популярным способом инкапсуляции функций кода организованным образом.

404
задан tanguy_k 19 October 2015 в 09:49
поделиться