我的 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!"
});
};
}