В моем коде я в настоящее время это:Как передать параметр xx в «controller as xx» в директиву?
<button id="retrieveButton"
ng-disabled="!home.forms.grid.$pristine"
ng-click="exam.retrieve(exam.configService.admin.examStatusId, exam.configService.admin.examTypeId, 1)">
Retrieve
<span class="fa fa-fw mlr75"
ng-class="{'fa-spin fa-spinner': exam.stateService.action['retrieve'], 'fa-download': !exam.stateService.action['retrieve'] }">
</span>
</button>
и
<button id="retrieveButton"
ng-disabled="!home.forms.grid.$pristine || content.stateService.action['init']"
ng-click="content.retrieve(content.configService.admin.contentCreatedBy, content.configService.admin.contentModifiedBy, content.configService.admin.contentStatusId, content.configService.admin.contentTypeId, 1 )">
Retrieve
<span class="fa fa-fw mlr75"
ng-class="{'fa-spin fa-spinner': content.stateService.action['retrieve'], 'fa-download': !content.stateService.action['retrieve'] }">
</span>
</button>
и больше .. со всеми одинаковыми для экзамена .. содержания и т.д., которые приходят от контроллера, как ххое исключением.
Я хочу создать директиву, которую я могу использовать для замены кода общим шаблоном. Вот то, что я создал:
app.directive('adminRetrieveButton', ['stateService', function (stateService) {
return {
scope: true,
restrict: 'E',
template: "<button id='retrieveButton'\
ng-disabled='!home.forms.grid.$pristine'\
ng-click='exam.retrieve(exam.configService.admin.examStatusId, exam.configService.admin.examTypeId, 1)' >Retrieve\
<span class='fa fa-fw mlr75'\
ng-class='{\"fa-spin fa-spinner\": exam.stateService.action[\"retrieve\"], \"fa-download\": !exam.stateService.action[\"retrieve\"] }' >\
</span>\
</button>",
link: function (scope, element, attrs) {
scope.stateService = stateService;
scope.entity = attrs["entity"];
}
};
}]);
Я думаю, что это будет делать эту работу, но как я могу передать на экзамене или содержание или .. что я думаю так же, как $ scope.exam или $ scope.content?
Спасибо обокрасть. Должен ли я полностью заменить свой «scope: true» тем, что вы написали? – 2014-08-27 15:59:29
да. хотя установка области для объекта вместо установки его в true может привести к некоторому поведению. Вот статья, объясняющая разницу http://www.undefinednull.com/2014/02/11/mastering-the-scope-of-a-directive-in-angularjs/ – rob