Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2013, 12:51
Интересующийся
Отправить личное сообщение для cartrege Посмотреть профиль Найти все сообщения от cartrege
 
Регистрация: 31.08.2012
Сообщений: 12

Проблемы с директивой
Здравствуйте!

Решил потренироваться с Angular. Задача, вроде бы простая, но что-то никак не выходит ее решить пока что.

Итак: нужно сделать директиву для виджета, в которой в атрибуте path будет указываться путь до виджета. После этого templateUrl будет строиться динамически.

Написал следующее определение директивы (в функции связывания для теста вывожу path):
app.directive('widget', function($log) {
    widgetDirective = {
        restrict: 'E',
        replace: true,
        template: '<div>TEMPLATE</div>',

        scope: {
            path: '@path'
        },

        link: function(scope, iElement, iAttrs, controller) {
            $log.log(scope.path); // для теста, посмотреть, что в scope
        }
    };

    return widgetDirective;
});


В HTML:
<widget path="menu.widgets.MenuWidget"></widget>


В результате в консоль выводится undefined. Но, если верить расширению AngularJS Batarang, то path содержит нужную строку с "menu.widgets.MenuWidget". + Если выводить в консоль не scope.path, а scope, то свойство path также содержит нужную строку.

Из этого всего у меня три вопроса:
1. почему может быть такое, что при выводе scope.path в консоль мы получаем undefined, а при выводе scope свойство path содержит нужную строку?
2. как можно все-таки достучаться из кода до свойства path в scope (iAttrs.path возвращает нужное значение)?
3. этот вопрос больше по самому angular. Можно ли в нем динамически менять templateUrl? Т.е. через директиву виджета можно подключить различные виджеты с сервера, каждый из которых имеет свой адрес. И можно ли, например, в templateUrl использовать такую конструкцию:
templateUrl: '/widget/{{path}}'


?

Если я совсем не так все понял и есть реализация проще, то, прошу, тыкните меня носом в ошибки, чтобы больше такого не городил.

Большое спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2013, 13:54
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

http://angular.ru/api/ng.directive:ngInclude
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2013, 13:58
Интересующийся
Отправить личное сообщение для cartrege Посмотреть профиль Найти все сообщения от cartrege
 
Регистрация: 31.08.2012
Сообщений: 12

nerv_,
Благодарю
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с PagingToolbar serg3091 ExtJS 4 26.06.2013 09:33
Проблемы при установке модулей node.js tadjik1 AJAX и COMET 1 18.03.2012 02:20
Решение проблемы с отображением элементов на странице mozyr Javascript под браузер 17 13.01.2012 02:34
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47