ОК, поэтому у меня есть директива, которая берет атрибуты и читает ее (и записывает ее).Получение значения атрибута из изолированного контроллера директивы
plunker демо: http://embed.plnkr.co/IkKPLahPc9yqeHWEQUG3/
Я думаю, что это из-за контроллера: Ctrl внутри главных-directive.js, который не имеет ничего, тогда как фактическое действие происходит внутри контроллера изолированной директивы контроллера.
Вот это основные-directive.js:
var app = angular.module('testapp.directive.main', ['main']);
app.directive('myCustomer', function() {
var controller = ['$scope', function($scope) {
$scope.dan = { 'name': 'Chad', 'nationality': 'China' };
// I want the scope.dan object to be read from here.
}];
var template = 'Getting attribute value of =getInfo... {{getInfo.name}} from {{getInfo.nationality}}';
return {
restrict: 'E',
controller: controller,
scope: {
getInfo: "=info"
},
template: template
};
});
app.controller('ctrl', function($scope) {
// adding the $scope.dan object here will work
// but I don't want it here.
});
и вот мой шаблон для него:
'[email protected]': {
controller: 'MainCtrl as mainCtrl',
template: '<div ng-controller="ctrl"><my-customer info="dan"></my-customer></div>'
}
Как сделать так, он считывает объекты внутри изолированного контроллера внутри директивы и NOT от контроллера 'ctrl'?
Спасибо.
Ну .. вся причина у меня был контроллер изоляции внутри директивы была для модульного тестирования. Имея контроллер таким образом ... он не делает его многоразовым, нет? – red
Я не совсем уверен, что вы подразумеваете под многоразовым. Для экземпляра вы можете, конечно, повторно использовать контроллер, указав 'controller: 'ctrl'' из любой директивы. – phix
Вы правы. Я думал о том, что контроллер должен быть изолирован, это должно быть ВНУТРИ директивы. Но какова цель иметь его внутри директивы? В любом случае, благодарю Вас. – red