I'm having troubles updating a variable on my controller's $scope
from within a directive binding to those variables. For instance, I'm trying update the value with a setter-function whenever I move my mouse, but the value never gets updated.
I have made a fiddle here: http://jsfiddle.net/23hdsueb/
Any ideas how to set variables on the parent scope from my directive?
HTML:
<body ng-app="testApp" ng-controller="TestController">
<p>
outside directive
</p>
<input type="text" name="name" ng-model="obj.value">
<p>
value: {{obj.value}}
</p>
<test value="obj.value" set-value="setValue"></test>
</body>
JS:
angular.module('testApp', [])
.controller('TestController', ['$scope', function ($scope) {
$scope.obj = {
value: 'initial value'
};
$scope.setValue = function (val) {
$scope.obj.value = val;
};
}])
.directive('test', ['$document', function ($document) {
return {
restrict: 'E',
scope: {
value: '=',
setValue: '='
},
template: '<div class="test">inside directive<br>value: {{value}}</div>',
link: function (scope, element, attrs) {
$document.on('mousemove', function (event) {
scope.setValue(event.pageX + ' : ' + event.pageY);
});
}
};
}]);