I'm trying to change a scope value in a parent controller from a child directive.
I've added =
for two-way binding such that when I click on a the directive's <tr>
, it will fire openDetail
, which will update scope.page
, which has been two-way bound.
Yet it's not updating the controller's page
value.
Controller HTML:
TEST : {{page}} //Not changed
<questions-list></questions-list>
Controller:
$scope.page = 'Not changed';
Directive HTML:
<tr ng-repeat="q in questions" ng-click="openDetail( q.id )">
"Questions List" Directive:
scope: {
page : '='
},
...
scope.openDetail = function (id) {
scope.page = 'question_detail';
};
In other examples, the ng-click
handlers are always bound on the Controller. In my case, I need to fire an event from the directive, change directive value, and have it update the controller.