im confused около 2-х сторон передачи данных в угловых. Посмотрите на код! var bah
может получить доступ к родительскому объекту $scope.something
, но когда я нажму кнопку, значение в контроллере изменилось на false
, но не в директиве. что не так? это ошибка?2-сторонняя директива по привязке данных угловая
как это решить? спасибо, чтобы помочь мне, надеюсь, у пожалуйста написать пример или ссылка ссылки
HTML
<div ng-controller="myController">
show me something {{ something }} <br>
<button ng-click="toggleSomething"><button>
<!-- this is a canvas -->
<my-directive></my-directive>
</div>
JS
angular.module('fooBar',[]).controller('myController', ['$scope', function($scope) {
// this is the something
$scope.something = true;
$scope.toggleSomething = function(){
if($scope.something) {
$scope.something = false
} else {
$scope.something = true
}
}
}]).directive('myDirective', function(){
return {
template: '<canvas width="500px" height="500px"></canvas>',
link: function(scope, el, attr) {
//how to access that 'something'
var bah = scope.$parent.something;
}
};
});
UPDATE Действительно спасибо вам всем. особенно для u @immirza
им так жаль, что я не могу ответить u один за другим. это просто добавить $parent
//how to access that 'something'
var bah = scope.$parent.something
Как вы знаете, 'что-то' не меняется в' директиве'? –
просто напишите console.log (scope. $ Parent.something) .. haha im действительно основной в js и угловой. XD – Cecep
umm oky вещь 'console.log (scope. $ Parent.something);' печатает один раз (это должно быть верно), если вы поместили его в функцию директивной ссылки, не так ли? так как вам удается проверить значение после нажатия кнопки в директиве, чтобы подтвердить, что значение не меняется? –