2013-09-01 3 views
0

У меня есть директива, в которой мне нужно получить доступ к области действия в месте, которое передается через атрибуты.Модель доступа из области пути в директиве

HTML:

<div my-directive scope-location="settings.main.url"> 
    ... 
</div> 

Директива:

link: function(scope, elm, attrs) { 
     // How can I do 
     // scope['settings']['main']['url'] = angular.element(elm).text(); 
     // where "['settings']['main']['url']" comes part from attr "scope-location" 
     // with value "settings.main.url"? 

     scope[attrs.scopeLocation] = angular.element(elm).text(); 
    } 

Fiddle: http://jsfiddle.net/GEhSG/3/

ответ

0

Есть три способа достижения этой

  • Так как ваша директива inher его сфера его применения от родителя, переменная доступна с помощью

    scope.settings.main.url

  • Если не хотите жёстко, вы можете использовать $parse услуги, такие как

    вар место = $ разборе (attrs.scopeLocation);

    местонахождение (сфера охвата);

  • Вы можете создать изолированную сферу и передать в переменной к объекту области видимости в определении директивы, как

    сферы: { scopeLocation: «=» }

Я создал скрипка, http://jsfiddle.net/beyND/, для первых двух подходов.

+0

большое спасибо, второй точно соответствует мне. – Delremm

Смежные вопросы