0

Я создаю директиву, которая должна обновить область его родителя. В основном это то, что я хочу:AngularJS директива по обновлению свойства объекта в области родителя

<div foo="foo.foo"></div> 

Эта директива должна установить модель передается в атрибуте «Foo» в «бар». Таким образом, сфера действия родителя должен иметь что-то вроде:

$scope.foo = { foo: 'foo' }; 

HTML:

<div ng-app="app"> 
    <div ng-controller="fooController"> 
     {{ foo.foo }} 
     <div foo="foo.foo"></div> 
    </div> 
</div> 

JS:

var app = angular.module('app', []); 

app.directive('foo', function() { 
    return { 
     restrict: 'A', 
     link: function (scope, attrs) { 
      scope[ attrs.foo ] = 'bar'; 
     } 
    }; 
}); 

app.controller('fooController', [ '$scope', function ($scope) { 
    $scope.foo = { 
     foo: 'foo' 
    }; 
} ]); 

JSFiddle: http://jsfiddle.net/wphvc75k/

ответ

2

Вы должны использовать 2- для привязки foo, используя '='

app.directive('foo', function() { 
    return { 
     scope : { 
      foo: '=' 
     }, 
     restrict: 'A', 
     link: function (scope, attrs) { 
      console.log(scope); 
      console.log(scope[ attrs.foo ]); 
      scope.foo = 'bar'; 
     } 
    }; 
}); 

Смотрите обновленный fiddle

+0

Спасибо, что ты прав! На самом деле я попробовал, и это не сработало, но на самом деле я не искал правильных вещей. Моя проблема исходила откуда-то еще: / – Gabin

Смежные вопросы