Как я могу отправить объект обратно из директивы в родительский контроллер?
Я определил следующую директиву:
app.directive('inspectorSharedObjects', function () {
return {
restrict: 'E',
scope: {
filterText: '=filter',
type: '=',
selectObject: '&onSelect'
},
controller: function ($scope) {
$scope.dot = function (tags) {
return "label-dot-" + tags[0];
}
},
link: function (scope, element, attrs) {
},
templateUrl: 'partials/InspectorSharedObjectListPartial.html'
};
});
... который я вызываю следующим образом:
<inspector-shared-objects ng-repeat="group in modelSharedObjects" type="group" filter="filterText" on-select="selectObject(obj)"></inspector-shared-objects>
... со следующим шаблоном:
<div class="object-group-header" ng-click="isActive = !isActive" ng-class="{active : isActive}">
<span>{{ type.name }}</span>
<span ng-if="filterText">({{ filteredList.length }})</span>
<i class="fa fa-plus-circle"></i>
</div>
<div class="object-group-list" ng-show="isActive">
<ul>
<li ng-repeat="obj in filteredList = (type.contents | filter:filterText | orderBy:'name')" ng-class="dot(obj.tags)" ng-click="selectObject(obj)">{{ obj.name }}</li>
</ul>
</div>
ng-click
в li
в списке должен отправить выбранный obj
обратно родительскому контроллеру. Приведенный выше код вызывает функцию этого родительского контроллера, но объект, который я пытаюсь передать, имеет вид undefined
.
Я прочитал следующий вопрос: метод вызова родительского контроллера из директивы в AngularJS, которая, я думаю, пытается сделать то же самое, но я не вижу, что я делаю иначе, чем ответ (или моя интерпретация этого).
Как я могу передать obj
из шаблона директивы обратно родительскому контроллеру?
ОБНОВЛЕНИЕ. Вот JSFiddle: http://jsfiddle.net/EvilClosetMonkey/7GMEG/
Когда вы нажимаете на маркированные значения, консоль должна выдать объект.