У меня есть два div с одним и тем же ng-контроллером в AngularJS, как я могу заставить их делиться информацией?
В моем HTML-коде есть два разных тега div, ссылающихся на один и тот же контроллер в AngularJS. Я подозреваю, что, поскольку эти div не являются вложенными, у каждого из них есть свой экземпляр контроллера, поэтому данные у обоих разные.
<div ng-controller="AlertCtrl">
<ul>
<li ng-repeat="alert in alerts">
<div class="span4">{{alert.msg}}</div>
</li>
</ul>
</div>
<div ng-controller="AlertCtrl">
<form ng-submit="addAlert()">
<button type="submit" class="btn">Add Alert</button>
</form>
</div>
Я знаю, что это легко исправить, включив кнопку в первый div, но я считаю, что это действительно чистый и простой пример, демонстрирующий то, чего я пытаюсь достичь. Если мы нажмем кнопку и добавим еще один объект в наш массив предупреждений, изменение не будет отражено в первом div.
function AlertCtrl($scope) {
$scope.alerts = [{
type: 'error',
msg: 'Oh snap! Change a few things up and try submitting again.'
}, {
type: 'success',
msg: 'Well done! You successfully read this important alert message.'
}];
$scope.addAlert = function() {
$scope.alerts.push({
type: 'sucess',
msg: "Another alert!"
});
};
}