2016-01-09 4 views
2

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

.directive("day", function($scope){ 
    return { 
     template: '<div>{{day}}</div>' 
     } 
    } 

Могу ли я использовать его в двух другой директиве, но инкапсулировать «день», чтобы увидеть результат так:

<div>1</div> 
    <div>2</div> 

Особенно, если я хочу, чтобы сохранить связывающее значение все «день»

ответ

0

Вы имели в виду что-то вроде этого?

app.directive('day', function(){ 
 
    return { 
 
    scope: { 
 
     dayValue: '=' 
 
    }, 
 
    template: '<div>{{dayValue}}</div>' 
 
    } 
 
}) 
 

 
app.directive('outerDirective', function(){ 
 
    return { 
 
    link: function($scope){ 
 
     $scope.days = [1,2,3]; 
 
    }, 
 
    template: '<day day-value="day" ng-repeat="day in days"></day>' 
 
    } 
 
})

+0

Спасибо, он отлично работает. То есть я хочу) –

1

То, что вы хотите, называется «изолирует» сферу, где вы связать атрибут директивы от местного «изолировать» объем до исходного объема.

app.directive('day', function(){ 
    return { 
    scope: { 
     day: '=' 
    }, 
    template: '<div>{{day}}</div>' 
    } 
}) 

HTML

<div ng-init="day1='Thursday'; day2='Friday'"> 

     <div day="day1"></div> 
     <div day="day2"></div> 

    </div> 

Результат

Thursday 

Friday 

Более подробную информацию о директиве прицелов см AngularJS $compile API Reference -- scope.

+0

Спасибо, что помогите мне) –

+0

Если вам понравилось, пожалуйста, примите мой ответ. – georgeawg

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