Я хочу создать директиву, которая ведет себя как контейнер, переведя его содержимое. Мой HTML выглядит следующим образомОбновление переменной области управления контроллера из директивы
<test>
<input type="text" ng-model="name" />
<button ng-click="alertName()">Alert</button>
</test>
контроллера и директивы, как этого
angular.module('app', [])
.controller('TestCtrl', function($scope) {
$scope.name = 'Eric Cartman';
$scope.alertName = function() {
alert($scope.name);
};
})
.directive('test', function() {
return {
restrict: 'E',
template: '<div ng-transclude></div>',
transclude: true,
replace: true,
link: function($scope, elem, attr, ctrl) {
}
};
});
При загрузке страницы я вижу «Эрик Картман» в текстовом поле, и когда я нажимаю кнопку «боевой готовности» Я вижу «Эрик Картман "в диалоговом окне. До сих пор все в порядке.
Проблема заключается в том, что я меняю имя в текстовом поле и нажимаю кнопку «Оповещение», все еще предупреждая «Эрик Картман». Где я иду не так?
Был только посреди ответа на этот вопрос, вот демонстранция, показывающая объяснение @Nikos http://plnkr.co/edit/d0BQDUUJm6x1crXlAYB0?p=preview – james