Angular.js: рдХреЛрдгреАрдп 1.2.18: рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреЗ рд╕рд╛рде рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рд╕рдорд╕реНрдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдЬреВрди 2014  ┬╖  48рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/angular.js

рдЬрдм рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдПрдЪрдЯреАрдПрдордПрд▓ рд╕рд╛рдордЧреНрд░реА {{рдЖрдЗрдЯрдо}} рдЬрд┐рд╕реЗ рдЖрдк рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд▓рд╛рдЧреВ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ = "рдЖрдЗрдЯрдо рдЗрди рдХрд▓реЗрдХреНрд╢рди" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд╕рдВрд╕реНрдХрд░рдг 1.2.18 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

http://embed.plnkr.co/EvzF25sPD3uZLQivDFqy/preview

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдЬреЛ рдХрд░ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рд╕рд┐рд░реНрдл $parent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдирд┐рд▓рд╛ рдХреА рдХреЛрдард░реА рд╣реИред

рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:

angular.module('test').directive('myDirectiveWithTransclusion', function() {
     return {
          restrict: 'E'
          transclude: {
               transcludeThis: 'transcludeThis'
          }
          template: "<div ng-repeat='item in array'><div ng-transclude='transcludeThis'></div></div>"
     }
})
<my-directive-with-transclusion>
     <transclude-this>
          {{$parent.item}}
     </transclude-this>
</my-directive-with-transclusion>

рд╕рднреА 48 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдУрд╣ рд▓реЙрдбреАред @petebacondarwin рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдФрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреЗ рд╕рд╛рде рдПрдХ рднрд╛рдИ рдХрд╛ рджрд╛рдпрд░рд╛ рди рдмрдирд╛рдПрдВ" рдЪреАрдЬ рдлрд┐рд░ рд╕реЗ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯреВрдЯрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд┐рдпрд╛

(рд╢рд╛рдпрдж) рд╕рдВрдмрдВрдзрд┐рдд: https://github.com/angular/angular.js/issues/7842

рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ ng-transclude рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЬреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рдХрдВрдЯреЗрдирд░ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХреЛ "рдЯреЗрдореНрдкрд▓реЗрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдореБрд╣рд░ рд▓рдЧрд╛рдирд╛ рд╣реИред

рдореИрдВ рдЕрддреАрдд рдореЗрдВ рдХреБрдЫ рдмрд╛рд░ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд┐рд╕реНрдХреЛ рдХреЗ рд╕рд╛рде рд▓рдВрдмреА рдмрд╣рд╕ рд╣реБрдИ рдереАред рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рдирд┐рд░реНрджреЗрд╢ рддрддреНрдХрд╛рд▓ рд╣реЛрддрд╛ рд╣реИ; рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЦрд╛рдХреЗ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдирд╣реАрдВред

рдкрд╣рд▓реЗ рдпрд╣ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЧрд▓рдд рджрд╛рдпрд░реЗ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдХреЛ рдмрд╛рдзреНрдп рдХрд░ рд░рд╣реЗ рдереЗ рдЬрд┐рд╕рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдкрд░рд┐рджреГрд╢реНрдп рд╢рд╛рдорд┐рд▓ рдереЗред

рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣рд╛рдВ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ HTML рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ рдХрдВрдкрд╛рдЗрд▓ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

http://plnkr.co/edit/j3NwMGxkVRM6QMhmydQC?p=preview

app.directive('test', function(){

  return {
    restrict: 'E',
    compile: function compile(tElement, tAttrs, tTransclude) {

      // Extract the children from this instance of the directive
      var children = tElement.children();

      // Wrap the chidren in our template
      var template = angular.element('<div ng-repeat="item in collection"></div>');
      template.append(children);

      // Append this new template to our compile element
      tElement.html('');
      tElement.append(template);

      return {
        pre: function preLink(scope, iElement, iAttrs, crtl, transclude) {
            scope.collection = [1, 2, 3, 4, 5];
        },
        post: function postLink(scope, iElement, iAttrs, controller) {
          console.log(iElement[0]);
        }
      };
    }
  };
});

рдЗрд╕рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг (рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ):

рдЗрдВрдбреЗрдХреНрд╕.рдПрдЪрдЯреАрдПрдордПрд▓:

<html ng-app='myApp'>

<head>
    <title>AngularJS Scopes</title>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
    <script src='index.js'></script>
</head>

<body ng-controller='myController'>
    <people>Hello {{person.name}}</people>
</body>
</html>

index.js:

var myApp = angular.module( 'myApp', [] );

myApp.controller( 'myController', function( $scope ) {
    $scope.people = [
        { name: 'Rob'  },
        { name: 'Alex' },
        { name: 'John' }
    ];
});

myApp.directive( 'people', function() {
    return {
        restrict: 'E',

        transclude: true,
        template: '<div ng-repeat="person in people" ng-transclude></div>',
    }
});

рдХреЛрдгреАрдп 1.2.1 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди 1.2.18 рдХреЗ рд╕рд╛рде рдирд╣реАрдВ;

рдирд┐рд░реНрджреЛрд╖ рдбреЗрд╡рд▓рдкрд░ рдХреЗрд╡рд▓ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рддрд╛ рд╣реИ:

... рдХрднреА-рдХрднреА рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкрд╛рд╕ рд╣реЛрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ "рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕" рдШрдЯрдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХрд┐рд╕реА рднреА рдордирдорд╛рдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрдмрдХрд┐ ngTransclude рдкреНрд░рд▓реЗрдЦрди рдХрд╣рддрд╛ рд╣реИ:

рд╡рд╣ рдирд┐рд░реНрджреЗрд╢ рдЬреЛ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдХрдЯрддрдо рдкреИрд░реЗрдВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡ рдХреЗ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб DOM рдХреЗ рдЗрдВрд╕рд░реНрд╢рди рдкреЙрдЗрдВрдЯ рдХреЛ рдорд╛рд░реНрдХ рдХрд░рддрд╛ рд╣реИред рддрддреНрд╡ рдХреА рдХреЛрдИ рднреА рдореМрдЬреВрджрд╛ рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреАред

рдпрд╣ @petebacondarwin рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ

...рдПрдХ рдХрдВрдЯреЗрдирд░ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдПрдВ рдЬреЛ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ "рдЯреЗрдореНрдкрд▓реЗрдЯ" рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рдореБрд╣рд░ рд▓рдЧрд╛рдирд╛ рд╣реИ

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдпрд╣рд╛рдВ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдХреБрдЫ рднреА рд╣реЛ рддреЛ рдореИрдВ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдХреЛрдк рдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА "рдмрд╛рд╣рд░" рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд рдЙрд╕ рд╕реНрдерд╛рди рдХрд╛ рджрд╛рдпрд░рд╛ рдЬрд╣рд╛рдВ <people> рддрддреНрд╡ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдмрдХрд┐ рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдЗрдирд▓рд╛рдЗрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП "рдЕрдВрджрд░", рдпрд╛рдиреА рдирд┐рд░реНрджреЗрд╢ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрдВрдзреЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рдпрджрд┐ рдЖрдкрдХрд╛ рдирд┐рд░реНрджреЗрд╢ рдЕрдкрдирд╛ рджрд╛рдпрд░рд╛ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд▓рдЧрднрдЧ рд╡рд╣реА рдмрд╛рдд рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдирд┐рд░реНрджреЗрд╢ рдПрдХ рдЕрд▓рдЧ рджрд╛рдпрд░рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рдХрд╣реЗрдВ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдЖрдВрддрд░рд┐рдХ рджрд╛рдпрд░реЗ рдХреА рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдХреЛрдк рдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ ...

рдЖрдк рдЬреЛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╕рд╣реА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рддрднреА рд╣реИ рдЬрдм рдЖрдк рдХреЛрдгреАрдп рдХреА рдЧрд╣рд░рд╛рдИ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рднреА рддрд░рд╣ рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ (рдпрд╛ 'рдЕрдВрджрд░') рдХреЗ рджрд╛рдпрд░реЗ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣реА рдЙрдЪрд┐рдд, рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИред рдореИрдВ рдХрдИ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреАред

рдЗрд╕реА рдореБрджреНрджреЗ рдХреЛ рдЗрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧ рд╢рд┐рдХрд╛рдпрдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рд╕рдордп рдЪреАрдЬреЗрдВ рдХреИрд╕реА рд╣реИрдВ (рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЬреАрдердм рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдХреА рднреАрдбрд╝ рд╣реИ)ред

рдФрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд╛рдн рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЛрд╣рд░рд╛ рд░рд╣рд╛ рд╣реВрдВ:

var myApp = angular.module( 'myApp', [] );

myApp.controller( 'myController', function( $scope ) {
    $scope.people = [
        { name: 'Rob'  },
        { name: 'Alex' },
        { name: 'John' }
    ];
});

myApp.directive( 'people', function() {
    return {
        restrict: 'E',
        transclude: true,
        template: '<div ng-repeat="person in people" inject></div>'
    }
});

myApp.directive('inject', function(){
  return {
    link: function($scope, $element, $attrs, controller, $transclude) {
      if (!$transclude) {
        throw minErr('ngTransclude')('orphan',
         'Illegal use of ngTransclude directive in the template! ' +
         'No parent directive that requires a transclusion found. ' +
         'Element: {0}',
         startingTag($element));
      }
      var innerScope = $scope.$new();
      $transclude(innerScope, function(clone) {
        $element.empty();
        $element.append(clone);
        $element.on('$destroy', function() {
          innerScope.$destroy();
        });
      });
    }
  };
});

:-) рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд┐рд░ рдЦреБрдЬрд▓рд╛рдиреЗ рдФрд░ рдХреАрдмреЛрд░реНрдб рдХреЛ рдкреАрдЯрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИред
рд╢рд╛рдпрдж рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдЖрд╕рдкрд╛рд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рдФрд░ рднреА рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ "рдмрд╛рд╣рд░реА" рджрд╛рдпрд░реЗ рдореЗрдВ рдмрд╛рдВрдз рджреЗрдЧрд╛?

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬ, рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреГрд╖реНрда рдкрд░ , рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ:

рдпрд╣ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓? рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдВрджрд░ рдХреЗ рдмрдЬрд╛рдп рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рд╣рд░ рдХреЗ рджрд╛рдпрд░реЗ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

(рдФрд░ рдЖрдЧреЗ рдЬреЛ рдХреБрдЫ рднреА рд╣реЛрддрд╛ рд╣реИ рд╡рд╣ рдЗрд╕реЗ рдЖрдЧреЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ)ред

рдореИрдВ рд╢рд╛рдпрдж рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рд╕рдВрднрд╡рддрдГ рдЗрд╕реЗ 'рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб-рдЖрдВрддрд░рд┐рдХ' рдмреНрд░рд╛рдВрдбрд┐рдВрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореИрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдФрд░ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ 'рдЯреНрд░рд╛рдВрд╕рд╕реНрдХреЛрдк' рдирд╛рдордХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрд░ рдЬрд╛рдирд╛ рдерд╛ред

рдореИрдВрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпреЛрдВ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдкреИрд░реЗрдВрдЯ рд╕реНрдХреЛрдк рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рджрд╛рдпрд░рд╛ рдирд╣реАрдВ рд╣реИ

http://plnkr.co/edit/7j92IC?p=preview

@luboid рдХрд╛рд░рдг рдЬреЛ рдЖрдкрдХреЗ рдкреНрд▓рдВрдХрд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рджрд╛рдпрд░рд╛ рд╣реИ, рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрдХрд▓рд┐рдд рдбреЛрдо (рдРрд╕рд╛ рдордд рдХрд░реЛ, рд╡реИрд╕реЗ, рдпрд╣ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рддрд░реАрдХрд╛ рд╣реИ) рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдЖрдЗрд╕реЛрд▓реЗрдЯ рд╕реНрдХреЛрдк рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рд╕рд╣реЛрджрд░ред

рдореИрдВ рдЙрд╕ рдХрд╛рдо рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рддрд░реАрдХреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝реВрдВрдЧрд╛, рдЬрд┐рд╕рдХреА рдЖрдк рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред (рд▓реЗрдХрд┐рди, рдпрд╣ рдЕрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рднрдпрд╛рдирдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ)

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдпрд╛ рдЕрдиреНрдп рддрддреНрд╡ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рддреЛ рд╣рд╛рдБ, рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг 1.2.0 . рдХреЗ рдмрд╛рдж рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛

@petebacondarwin рдпрд╣рд╛рдБ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдкреНрд░рд╢реНрди рд╣реИред рдХреЗрд╡рд▓ рдХреЗ рдмрдЬрд╛рдп var innerScope рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░реЗрдВ:

myApp.directive( 'inject', function() {
    return {
        link: function( $scope, $element, $attrs, controller, $transclude ) {
            if ( !$transclude ) {
                throw minErr( 'ngTransclude' )( 'orphan',
                    'Illegal use of ngTransclude directive in the template! ' +
                    'No parent directive that requires a transclusion found. ' +
                    'Element: {0}',
                    startingTag( $element ));
            }

            $transclude( $scope, function( clone ) {
                $element.empty();
                $element.append( clone );
            });
        }
    };
}); 

рдпрджрд┐ рдЖрдк рдХреБрдЫ рдирдП рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдирдпрд╛ рджрд╛рдпрд░рд╛ рдмрдирд╛рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдореВрд▓ рдирд┐рд░реНрджреЗрд╢ рдХреБрдЫ рдЬрдЯрд┐рд▓ рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рдЯрдХрд░рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЧреБрдВрдЬрд╛рдЗрд╢ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рдЖрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдБ рджреВрд░ ...

рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж,
рдореИрдВ рдмрд╛рд╣рд░реА рдЯреЗрдореНрдкреНрд▓реЗрдЯ ($templateCache) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдлрд┐рд░ рдЪреАрдЬреЗрдВ рдереЛрдбрд╝реА рд╕рд░рд▓ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рдмреЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдбрд╛рдпрд░реЗрдХреНрдЯрд┐рд╡ рд╕реНрдХреЛрдк рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

@Izhaki @petebacondarwin рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ 1.2.16 рд╕реЗ 1.2.20 рддрдХ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛ рдХрд┐ рдореЗрд░рд╛ рдРрдк рдЗрддрдиреА рдореЗрд╣рдирдд рд╕реЗ рдХреНрдпреЛрдВ рдЯреВрдЯрдиреЗ рд▓рдЧрд╛ред

рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рд╕реВрддреНрд░ рдХреЛ рдЦреЛрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛ рдереАред рдирд╣реАрдВред

рдЙрди рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдЬреЛ рдЗрд╕реЗ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг 1.2.21 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╣рдорд╛рд░рд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЯреВрдЯ рдЧрдпрд╛, рдФрд░ рдЕрдм рд╣рдо рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИрдВред

@caitp @petebacondarwin : рдЕрдЧрд░ рд╣рдореЗрдВ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рдЬрд╛рдП рддреЛ рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛:

  1. "рд╕рдВрд╕реНрдХрд░рдг 1.2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ" (рдЬреИрд╕рд╛ рдХрд┐ рдХреИрдЯрд▓рд┐рди рдиреЗ рдХрд╣рд╛) рдХрд╣реАрдВ рди рдХрд╣реАрдВ рд╣реБрдЖ рдХреМрди рд╕рд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдЪрд╛рдирдХ рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реЛ рдЧрдпрд╛? рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рдкрд╛рд╕ рдЪреЗрдВрдЬрд▓реЙрдЧ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЪреАрдЬ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИ рдЬреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
  2. рдпрджрд┐ рд╣рдо рдкреГрдердХ, рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХрдВрдЯреЗрдирд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдордирдорд╛рдиреА рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ, рддреЛ рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреЗ рдмрджрд▓реЗ рдПрдВрдб-рдпреВрдЬрд░реНрд╕ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдмрдбрд╝рд╛, рдмрд╣реБ-рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд╣рд╛рдВ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднреА рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбреЗрдЯрд╛-рдЪрд╛рд▓рд┐рдд рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реВрдЪреА рдирд┐рдпрдВрддреНрд░рдг рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрд╡рдпрдВ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ рд▓рдЧрд╛рддрд╛рд░ рдмрд╛рддрдЪреАрдд/рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВред рд╣рдо рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд░реИрдкрд░ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕реВрдЪреА рдЖрдЗрдЯрдо (рдЬрд┐рд╕рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдирд┐рд░реНрджреЗрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ) рдХреЗ рд▓рд┐рдП рд╣рдо рдЬрд┐рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЕрдХреНрд╕рд░ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ, рдбреЗрдЯрд╛ рдХреЗ рд╡реГрдХреНрд╖-рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрди рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рд╕рднреА рдХреЛрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЖрдВрддрд░рд┐рдХ рдХреЛ рдмрд╛рд╣рд░реА рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХрдВрдЯреЗрдирд░ рдФрд░ рдЙрдирдХреА рдордирдорд╛рдиреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛, рдШреЛрд╖рдгрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рдж рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рд░реНрджреЗрд╢ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред рдХреНрдпрд╛ рдПрдирдЬреА-рдЗрдирдХреНрд▓реВрдб рдЕрдм рдЗрд╕рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИ (рдХрдВрдЯреЗрдирд░ рдШреЛрд╖рдгрд╛ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд▓рд┐рдП рдкрде рдкрд╛рд░рд┐рдд рдХрд░рдирд╛), рднрд▓реЗ рд╣реА рдпрд╣ рд╣рдореЗрдВ рдЗрдирд▓рд╛рдЗрди рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рд╕реЗ рджреВрд░ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдереЛрдбрд╝рд╛ рдХрдо рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд▓рдЧрддрд╛ рд╣реИ?

рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдм рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рдкрд╛рд╕ рдЪреЗрдВрдЬрд▓реЙрдЧ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЪреАрдЬ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИ рдЬреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

https://github.com/angular/angular.js/blob/master/CHANGELOG.md#120 -timely-delivery-2013-11-08

рдореИрдВ рдЗрдирдХрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛

  • рдХреЗрд╡рд▓ рдЙрди рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЗрд╕реЛрд▓реЗрдЯ рд╕реНрдХреЛрдк рдкрд╛рд╕ рдХрд░реЗрдВ рдЬреЛ рдЖрдЗрд╕реЛрд▓реЗрдЯ рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ (d0efd5ee)
  • рдЖрдЗрд╕реЛрд▓реЗрдЯ рд╕реНрдХреЛрдк рдХреЛ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ рдЖрдЗрд╕реЛрд▓реЗрдЯ рдХрд░реЗрдВ (909рдХреИрдмрдбреА3, #1924, #2500)

рд▓реЗрдХрд┐рди, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдореИрдВ рдЕрдм рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ ┘Д═Ьр║Ир╝╜я╛Й

рдЪреИрдВрдЬ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рд╣реЛрддреЗ рд╣реИрдВ: рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддреЛрдбрд╝рдирд╛ред рдЗрд╕реЗ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдПрдХ рдмрдЧрдлрд┐рдХреНрд╕ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред рдпрд╣ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╢рд╛рдпрдж рдорд╛рдЗрдЧреНрд░реЗрд╢рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬрд┐рд╕реЗ рдХреБрдЫ рдкреНрдпрд╛рд░ рдЪрд╛рд╣рд┐рдП)

рдерд╛рдиреЗрджрд╛рд░ '' рдирдлрд╝ред рд╡рд╣реА рд╣реИрдВред рдореИрдВ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрдЗрд╕реЛрд▓реЗрдЯ рд╕реНрдХреЛрдк рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИ рдЬреЛ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдХреЗ рд▓рд┐рдП рдЖрдХрд╕реНрдорд┐рдХ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рднреА рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдЙрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ person рдЪрд░реЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдФрд░ рдореВрд▓ рджрд╛рдпрд░реЗ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреБрдЫ рдЖрд╕рд╛рди рдШреЛрд╖рдгрд╛рддреНрдордХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред 1.2.18 рдореЗрдВ рдЗрд╕ bug рдХреЛ рдареАрдХ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рддрдиреЗ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред

рдпрд╣рд╛рдВ рдбреЗрдореЛ рд╣реИ рдЬреЛ 1.2.17 рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ 1.2.18 рд╕реЗ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ

http://plnkr.co/edit/QswOxN?p=preview

@evgenyneu : рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдФрд░ рдХрдВрдЯреЗрдирд░ рдирд┐рд░реНрджреЗрд╢ рджреЛрдиреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреЗ рдмрдЬрд╛рдп ng-include рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реНрдкрд╖реНрдЯ, рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рд╣рдореЗрдВ рд╡рд╣ рд╡рд┐рд░рд╛рд╕рдд рдкреИрдЯрд░реНрди рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рдирд┐рд░реНрджреЗрд╢ рдШреЛрд╖рдгрд╛ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдирд╛рдо рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕реА рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдПрдирдЬреА-рд╢рд╛рдорд┐рд▓ рдирд┐рд░реНрджреЗрд╢ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдкрд╣рд▓реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдирд┐рд░реНрджреЗрд╢ рдерд╛ред рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡реНрдпреВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░ рдЗрдирд▓рд╛рдЗрди рд╣реЛ, рддреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдЙрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдЬреА-рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬрд┐рд╕рдХрд╛ рдЖрдк рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗред

@xmilliley , рдЙрддреНрдХреГрд╖реНрдЯ рдЯрд┐рдк, рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд╛рдл рддрд░реАрдХрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдбреЗрдореЛ рд╣реИ: http://plnkr.co/edit/4MwEL3?p=preview

рджреЛрд╕реНрддреЛрдВ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ http://plnkr.co/edit/fw7thti1u4F9ArxsuYkQ?p=preview --- рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ

@caitp , рдЕрдЪреНрдЫрд╛ рдПрдХ, рдзрдиреНрдпрд╡рд╛рджред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ!

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ 'рдмреЗрд╣рддрд░' рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдорд╛рдВрдЧреЗ рдЧрдП рдЖрдВрддрд░рд┐рдХ рджрд╛рдпрд░реЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ 3 рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

  • рд╕рд┐рд▓рдмрд┐рдВрдЧ - рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рджрд╛рдпрд░рд╛ рдЙрд╕ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣реЛрджрд░ рд╣реИ рдЬрд╣рд╛рдВ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рд╣реЛрддрд╛ рд╣реИред рд╡рд╣ рд╡рд░реНрддрдорд╛рди рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред
  • рдкреИрд░реЗрдВрдЯ - рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХрдВрдЯреЗрдВрдЯ рд╕реНрдХреЛрдк рдЙрд╕ рдПрд▓рд┐рдореЗрдВрдЯ рдХрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рд╣реЛрддрд╛ рд╣реИред
  • рдЪрд╛рдЗрд▓реНрдб - рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХрдВрдЯреЗрдВрдЯ рд╕реНрдХреЛрдк рдЪрд╛рдЗрд▓реНрдб рд╕реНрдХреЛрдк рд╕реЗ рдЙрд╕ рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рд╕реНрдХреЛрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рд╣реЛрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ:

template: 
  '<div ng-transclude="parent">' +
  '</div>'

рдкреВрд░рд╛ рдЙрджрд╛рд╣рд░рдг

рд╕рднреА рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдкреНрд▓рдВрдХ рджреЗрдЦреЗрдВред

рдЖрдЙрдЯрдкреБрдЯ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

image

рд╕реНрд░реЛрдд

.config(function($provide){
    $provide.decorator('ngTranscludeDirective', ['$delegate', function($delegate) {
        // Remove the original directive
        $delegate.shift();
        return $delegate;
    }]);
})

.directive( 'ngTransclude', function() {
  return {
    restrict: 'EAC',
    link: function( $scope, $element, $attrs, controller, $transclude ) {
      if (!$transclude) {
        throw minErr('ngTransclude')('orphan',
         'Illegal use of ngTransclude directive in the template! ' +
         'No parent directive that requires a transclusion found. ' +
         'Element: {0}',
         startingTag($element));
      }

      var iScopeType = $attrs['ngTransclude'] || 'sibling';

      switch ( iScopeType ) {
        case 'sibling':
          $transclude( function( clone ) {
            $element.empty();
            $element.append( clone );
          });
          break;
        case 'parent':
          $transclude( $scope, function( clone ) {
            $element.empty();
            $element.append( clone );
          });
          break;
        case 'child':
          var iChildScope = $scope.$new();
          $transclude( iChildScope, function( clone ) {
            $element.empty();
            $element.append( clone );
            $element.on( '$destroy', function() {
              iChildScope.$destroy();
            });            
          });
          break;
      }
    }
  }
})

@ рдЗрдЬрд╝рд╛рдХреА -

:+1: @Izhaki рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдПред рдореИрдВ рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕реЗ рдХреЛрдгреАрдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддреЛ рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдорд╣рд╕реВрд╕ рдХрд░реВрдВрдЧрд╛ред

+1

@Izhaki +1, рдмрдврд╝рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг!

рдХрд╕реНрдЯрдо рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд╕ рдПрдХ рдЕрд▓рдЧ рдХрд╕реНрдЯрдо рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдмрдирд╛рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ред рдЖрдкрдХреЗ рдкреИрдЪ рдореЗрдВ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддреА рд╣реИрдВред minErr () рдФрд░ startTag ()

@dehru - рдпреЗ рдХрд╛рд░реНрдп AngularJS рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд╣реИрдВред

@Izhaki рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдкреНрд▓рдВрдХ рдХреЛ рдлреЛрд░реНрдХ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдиреЗ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред
рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб = "рдкреИрд░реЗрдВрдЯ" рдЖрдкрдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
http://plnkr.co/edit/S6ngqz?p=preview

plunker_ng-transclude_ng-repeat

@Izhaki рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред
рдРрд╕рд╛ рдХреБрдЫ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдХреЛрдгреАрдп рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ..
рдХрдо рд╕реЗ рдХрдо рдПрдХ Github рд░реЗрдкреЛ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рддрд╛рдХрд┐ рдореИрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХреВрдВ ....)?
рдзрдиреНрдпрд╡рд╛рдж

рдЗрдЬрд╝рд╛рдХреА, рдпрд╣ рдХрдорд╛рд▓ рд╣реИред рдореИрдВ рджрд┐рд▓ рд╕реЗ рдЖрдкрдХреЛред

@Izhaki рдпрд╣ рдмрд╛рд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред рдзрдиреНрдпрд╡рд╛рджред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ, рдФрд░ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ $transclude рдлрд╝рдВрдХреНрд╢рди рдХреА рд╡рд┐рд░рд╛рд╕рдд рдмрд╛рд╣рд░реА рдирд┐рд░реНрджреЗрд╢ рд╕реЗ ngTransclude рдирд┐рд░реНрджреЗрд╢ рддрдХ рдХреИрд╕реЗ рдЬрд╛рддреА рд╣реИ? рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣реАрдВ рднреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ transclude: true рдХреЛ рд▓рд┐рдВрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ $transclude рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ред рдХреЛрдб рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ transclude: true рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдпрд╣рд╛рдБ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рджрд┐рдиреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд┐рдпрд╛ рдХрд┐ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рддрддреНрд╡реЛрдВ рдХреЛ рдЙрдирдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рднреАрддрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ ng-transclude-replace рджреЛрдиреЛрдВ рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ! http://gogoout.github.io/angular-directives-utils/#/api/ng -directives-utils.transcludeReplace

рдореБрдЭреЗ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдирд┐рд░реНрджреЗрд╢ рдпрд╛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдкреНрд░рдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ! рд╕рднреА рд╕рддреНрдпрд╛рдкрди/рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рд╣рд┐рдд рд╕рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:

<form-field label="Roles" required>
    <checkbox-group>
        <checkbox ng-repeat="role in roles" label="{{role.description}}">
            <input type="checkbox" name="selectedRoles" ng-model="role.selected" value="{{role.description}}" ng-required="!hasRole" />
        </checkbox>
    </checkbox-group>
</form-field>

@abobwhite рдПрдирдЬреА-рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб-рд░рд┐рдкреНрд▓реЗрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмрдврд╝рд┐рдпрд╛ рдлрд┐рдХреНрд╕ред

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реИред рдЬрдмрдХрд┐ @Izhaki рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдордп рдореЗрдВ рдХреЛрдИ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, ng-transclude="sibling | parent | child" рдХреЛ рдХреЛрдгреАрдп рдХреЛрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рд╣реА рд╣реИ?

@telekid - рдЕрднреА рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдХреЛрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рд╣рдорд╛рд░реА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рдФрд░ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ рдпрджрд┐ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдВрджрд░ рдХреЗ рджрд╛рдпрд░реЗ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдерд╛ред

рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдореЙрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ @Izhaki рдиреЗ рдХреЛрдгреАрдп 1.5 рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдорд▓реНрдЯреА-рд╕реНрд▓реЙрдЯ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдЬрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗред
рд╢рд╛рдЦрд╛: https://github.com/NickBolles/ngTranscludeMod/tree/Angular1.5-multi-slot
рдкреАрдЖрд░: https://github.com/Izhaki/ngTranscludeMod/pull/2
рдкреНрд▓рдВрдХрд░: http://plnkr.co/edit/5XGBEX0muH9CSijMfWsH?p=preview

рдореИрдВ рдЬреЛ рдХрд░ рд░рд╣рд╛ рдерд╛ рд╡рд╣ рд╕рд┐рд░реНрдл $parent рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдирд┐рд▓рд╛ рдХреА рдХреЛрдард░реА рд╣реИред

рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:

angular.module('test').directive('myDirectiveWithTransclusion', function() {
     return {
          restrict: 'E'
          transclude: {
               transcludeThis: 'transcludeThis'
          }
          template: "<div ng-repeat='item in array'><div ng-transclude='transcludeThis'></div></div>"
     }
})
<my-directive-with-transclusion>
     <transclude-this>
          {{$parent.item}}
     </transclude-this>
</my-directive-with-transclusion>

рд╣рд╛рдп @ рдордиреАрдЯреНрд░реА-рдбреМрдЧ: рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЯреНрд░рд╛рдВрд╕рдХреНрд▓реВрдб рдХрд╛ рджрд╛рдпрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ-рдпрд╣ рдЕрднреА рднреА рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рджрд╛рдпрд░рд╛ рд╣реИ, рди рдХрд┐ рдирдП рджрд╛рдпрд░реЗ рдХрд╛ рдмрдЪреНрдЪрд╛ рдЬреЛ рдПрдирдЬреА-рд░рд┐рдкреАрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

@szetin рдХреНрдпрд╛ рдЖрдк рдПрдХ jsfiddle рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдмрдирд╛рдо рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ashish91 picture ashish91  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

visnup picture visnup  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

th0r picture th0r  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guyandtheworld picture guyandtheworld  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ceymard picture ceymard  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ