AngularJS недавно была добавлена поддержка нового «контроллера как» синтаксис, который, кажется, предназначен в качестве замены для $scope
:Может ли директива AngularJS обращаться к экземпляру контроллера?
var app = angular.module("example", []);
app.controller("ExCtrl", function() {
this.property = "some value";
/* Previously you would have to inject $scope and use
$scope.property = "some value"; */
});
Когда у вас есть директива, которая возникает в представлении, что имеет контроллер, присоединенный к нему и вы хотите, чтобы обмениваться данными между директивой и моделью, можно предварительно использовать $scope
:
app.directive("exDirective", function() {
return function (scope) {
scope.property2 = "another value";
};
});
есть ли способ использовать «контроллер в качестве» синтаксиса и позволяют директивы происходят внутри взгляды, используя этот контроллер для доступа к его объем?
«контроллер как» не предназначен для замены, но для увеличения, области ... –
Итак, если в представлении вам нужна директива, которая обращается к модели с контроллера, связанного с представлением, нет смысла использовать «контроллер» -as ", и вы можете также придерживаться' $ scope' (или в конечном итоге некоторые из ваших данных на экземпляре контроллера, а некоторые - в области)? –
Вы можете сделать это в любом случае - как и многие вещи в угловом, есть только руководство и лучшие подходы, а не строгие правила. Модель, которую я отслеживал, - это «поведение контроллера, данных и манипулирования данными по объему». (думаю: функции фильтра, результаты от $ http и т. д.) –