Есть способ сделать что-то подобное в AngularJS. Это называется Директивой. В вашем случае вы хотите создать директиву с restrict
, установленным на 'E'
.
'E'
, которая сообщает компилятору, что это будет элемент в сгенерированном HTML.
angular.module('scopeDirective', [])
.controller('app', ['$scope', function($scope) {
$scope.naomi = { name: 'Uriel', address: '1600 Amphitheatre' };
$scope.igor = { name: 'Bitton', address: '123 Somewhere' };
}])
.directive('customer', function() {
return {
restrict: 'E',
scope: {
customerInfo: '=info'
},
templateUrl: 'customer.html'
};
});
The scope
объект после restrict
определяет различные атрибуты, которые вы бы хотели, чтобы эта директива принимала. Это похоже на работу реквизита в React. В этом объекте вы можете видеть customerInfo
, что соответствует свойству изолята области действия директивы. Значение (=info)
указывает $compile
на привязку к атрибуту info.
templateUrl
отображается в HTML для этой директивы.
Использование директивы выше будет выглядеть примерно так:
<div ng-controller="app">
<customer info="uriel"></customer>
<hr>
<customer info="bitton"></customer>
</div>
Пожалуйста, обращайтесь к документации AngularJS по Директивам .
ПРИМЕЧАНИЕ. Вместо того, чтобы пытаться что-то делать в AngularJS, аналогично тому, как вы это делаете в Reactили любой другой фреймворк / библиотека, я бы посоветовал вам не использовать возможности текущего фреймворка и использовать его как есть, не пытаясь сравнить способ достижения похожих вещей, так как это может привести к разочарованию в будущем.
Надеюсь, вы найдете этот ответ полезным для своих нужд.