РассмотримУгловые прицелы и привязки данных к директиве
angular.module('App').directive('errors',function() {
return {
restrict: 'A',
controller:function() {
var self = this;
self.closeErrors = function() {
self.errors = [];
self.hasErrors = false;
}
},
controllerAs: 'errorsCtrl',
templateUrl: 'errors.html'
}
при вызове с
<div errors="otherCtrl.errors"></div>
ошибки объекта происходит от другого контроллера. Я знаю, что я могу добавить
scope: {errors:"="},
, а затем получить доступ к нему в мой контроллер через
$scope.errors;
но когда я назначить его
self.errors = $scope.errors.
self.errors никогда не обновляется, когда это изменено в родительском.
Так что мой вопрос в том, как я могу позволить этой работе, что, когда мой родительский контроллер меняет объект ошибок, он также изменяется в errorsCtrl.
(Кроме того, я знаю, что могу получить доступ к ошибкам непосредственно в шаблоне без контроллера, но я просто хочу использовать errorsCtrl)
Почему бы вам просто не использовать $ scope для каждой переменной в контроллере? – Shomz
Насколько я читаю начиная с 1.4, они пытаются избавиться от $ scope и особенно для 2.0, поэтому я хочу сделать это с помощью var self = таким образом. – woutervs