2016-04-07 2 views
0

использование директивыПередача значения атрибута в директиве контроллер

<my-directive my-attr='StackOverflow'></my-directive>

Директива Definiton

app.directive('myDirective', function($scope){ 
    return { 
    restrict: 'E', 
    template: 'I want to print the attribute value', 
    controller: function($scope){ 
     // I also want to access the attribute value here. 
    } 
    }; 
}); 

Есть ли способ для достижения этой цели.

ответ

0

Вместо scope: true записи,

scope: { 
    myattr: '@' 
} 

Тогда myattr будет доступен в $scope

Fiddle

Убедитесь использовать небольшой корпус, как-то с помощью какой-либо другой корпус, как паскаль или верблюд вызывает проблемы.

1

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

код можно записать что-то вроде

app.directive('myDirective', function($scope){ 
    return { 
     restrict: 'E', 
     Scope:{ 
     myAttr:'=' 
     }, 
     template: 'I want to print the attribute value: and here is your value: {{myAttr}}', 
     controller: function($scope){ 
     // I also want to access the attribute value here. 
     console.log($scope.myAttr); 
     } 

}; });

и использование такое же

<my-directive my-attr='StackOverflow'></my-directive> 

Вот такой же вопрос Angularjs - Pass argument to directive

Также вы можете найти более подробную информацию об использовании директивы на https://docs.angularjs.org/guide/directive

+0

Значение не определено. http://fiddle.jshell.net/shreyas_a/chpqfxvb/1/ – Shreyas

+0

Аналогичный код работает для меня, я не знаю, что вызывает проблему. –

+0

Можете ли вы предоставить скрипку! – Shreyas

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