AngularJSのスコープまたはスコープについて

Angularでは、通常、子スコープは親からプロトタイプ的に継承されます。 唯一の例外は、 scope: { ... }を使用するディレクティブscope: { ... } 、これはプロトタイプ的に継承されない「分離」スコープを作成します。 この設計は、再利用可能なコンポーネントのディレクティブを作成するときによく使用されます。

通常、ドメインの継承は直接的なものであり、多くの場合、どのように行われるかを知る必要さえありません... プリミティブ (例:数値、文字列、論理型) への 双方向のデータバインディング (つまり、フォーム要素、ngモデル) )子から親スコープで定義されます。 ほとんどの人が期待するようには機能しません。 子孫が独自のスコープを作成し、同じ名前の親プロパティと重複することがあります。 これはAngularの機能ではないため、プロトタイプの継承はJavascriptで機能します。 Angularを使用する新しい開発者は、ng-repeat、ng-switch、ng-view、ng-includeが新しい子領域を作成することに気付かないことが多いため、これらのディレクティブを使用すると問題が発生します。

この問題は、「 ベストプラクティス 」に従うことで簡単に回避できます。これは、ng-modelの式に常にピリオドを含める必要があることを示しています。

モデル内のドット「。」により、プロトタイプの継承が正常に機能することが保証されます。 だから

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.


.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.


.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.


.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.


.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.
   
.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

.

/ , :

1. $parent.parentScopeProperty
. .
2. , , ( )


, , .

parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

画像

( , , anArray , .)

, parentScope, , , , , . ( parentScope, ... ). , :

childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
, :

childScope.aString = 'child string'
, aString childScope. parentScope . , ng-repeat ng-include .

画像

, :

childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
, (anArray anObject) childScope. parentScope, . childScope; . (, .)

画像

, :

childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
, , parentScope .

画像

:

childScope.propertyX childScope propertyX, . childScope.propertyX, .
:

delete childScope.anArray childScope.anArray[1] === 22 // true
childScope, , , .

画像


:

, : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
, , , .. scope: false .

ng-include
, :

$scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
HTML:

<script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
ng-include , .

画像

(, «77») , myPrimitive , .

, , .

画像

(, «99») . tpl2.html , , ngModel MyObject — .

画像

: , «99» 11, 50.

$parent, :

<input ng-model="$parent.myPrimitive">
(, «22») . ( $parent ,
).

画像

( ), Angular - (. . ), $parent, $$childHead $$childTail . .

, , . , , . ,

// $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
, « ». ( Stack Overflow .)

. stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

ng-switch
ng-switch ng-include. , $parent , . .

. AngularJS, bind scope of a switch-case?

ng-repeat
ng-repeat -. , :

$scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
HTML:

<ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
/, ng-repeat , , . ( .) ng-repeat:

childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

画像

ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

, ( ) . (. ., num , ng-model) . ng-repeat , :

画像

( .)

, . , , .

. ng-model, ng-repeat, inputs ng-repeat and databinding

ng-view
, , , ng-include.

ng-controller
( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

( , . . . Controller load order differs when loading or navigating )


( scope: false ) — , . , , , , , , . , .

scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

scope: { ... } — . . , , . . . , .

- ( «=») ( «@») . «&» . , , . ,
— -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

__proto__ Scope ( , «Scope» «Object»). $parent , , , .



<my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

, : scope.someIsolateProp = "I'm isolated"

画像

: attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

( ) — $parent . , $$nextSibling .

. AngularJS two way binding not working in directive with transcluded scope

, : transclude: true

画像


showScope() . .


:

— ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
( ), - (. . ), $parent, $$childHead $$childTail.

  1. .

    / , :

    1. $parent.parentScopeProperty
    . .
    2. , , ( )


    , , .

    parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

    画像

    ( , , anArray , .)

    , parentScope, , , , , . ( parentScope, ... ). , :

    childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
    , :

    childScope.aString = 'child string'
    , aString childScope. parentScope . , ng-repeat ng-include .

    画像

    , :

    childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
    , (anArray anObject) childScope. parentScope, . childScope; . (, .)

    画像

    , :

    childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
    , , parentScope .

    画像

    :

    childScope.propertyX childScope propertyX, . childScope.propertyX, .
    :

    delete childScope.anArray childScope.anArray[1] === 22 // true
    childScope, , , .

    画像


    :

    , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
    , , , .. scope: false .

    ng-include
    , :

    $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
    HTML:

    <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
    ng-include , .

    画像

    (, «77») , myPrimitive , .

    , , .

    画像

    (, «99») . tpl2.html , , ngModel MyObject — .

    画像

    : , «99» 11, 50.

    $parent, :

    <input ng-model="$parent.myPrimitive">
    (, «22») . ( $parent ,
    ).

    画像

    ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

    , , . , , . ,

    // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
    , « ». ( Stack Overflow .)

    . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

    ng-switch
    ng-switch ng-include. , $parent , . .

    . AngularJS, bind scope of a switch-case?

    ng-repeat
    ng-repeat -. , :

    $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
    HTML:

    <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
    /, ng-repeat , , . ( .) ng-repeat:

    childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
    ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

    画像

    ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

    , ( ) . (. ., num , ng-model) . ng-repeat , :

    画像

    ( .)

    , . , , .

    . ng-model, ng-repeat, inputs ng-repeat and databinding

    ng-view
    , , , ng-include.

    ng-controller
    ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

    ( , . . . Controller load order differs when loading or navigating )


    ( scope: false ) — , . , , , , , , . , .

    scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

    scope: { ... } — . . , , . . . , .

    - ( «=») ( «@») . «&» . , , . ,
    — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

    __proto__ Scope ( , «Scope» «Object»). $parent , , , .



    <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

    scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

    , : scope.someIsolateProp = "I'm isolated"

    画像

    : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

    onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


    transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

    ( ) — $parent . , $$nextSibling .

    . AngularJS two way binding not working in directive with transcluded scope

    , : transclude: true

    画像


    showScope() . .


    :

    — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
    ( ), - (. . ), $parent, $$childHead $$childTail.

  2. .

    / , :

    1. $parent.parentScopeProperty
    . .
    2. , , ( )


    , , .

    parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

    画像

    ( , , anArray , .)

    , parentScope, , , , , . ( parentScope, ... ). , :

    childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
    , :

    childScope.aString = 'child string'
    , aString childScope. parentScope . , ng-repeat ng-include .

    画像

    , :

    childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
    , (anArray anObject) childScope. parentScope, . childScope; . (, .)

    画像

    , :

    childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
    , , parentScope .

    画像

    :

    childScope.propertyX childScope propertyX, . childScope.propertyX, .
    :

    delete childScope.anArray childScope.anArray[1] === 22 // true
    childScope, , , .

    画像


    :

    , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
    , , , .. scope: false .

    ng-include
    , :

    $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
    HTML:

    <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
    ng-include , .

    画像

    (, «77») , myPrimitive , .

    , , .

    画像

    (, «99») . tpl2.html , , ngModel MyObject — .

    画像

    : , «99» 11, 50.

    $parent, :

    <input ng-model="$parent.myPrimitive">
    (, «22») . ( $parent ,
    ).

    画像

    ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

    , , . , , . ,

    // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
    , « ». ( Stack Overflow .)

    . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

    ng-switch
    ng-switch ng-include. , $parent , . .

    . AngularJS, bind scope of a switch-case?

    ng-repeat
    ng-repeat -. , :

    $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
    HTML:

    <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
    /, ng-repeat , , . ( .) ng-repeat:

    childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
    ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

    画像

    ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

    , ( ) . (. ., num , ng-model) . ng-repeat , :

    画像

    ( .)

    , . , , .

    . ng-model, ng-repeat, inputs ng-repeat and databinding

    ng-view
    , , , ng-include.

    ng-controller
    ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

    ( , . . . Controller load order differs when loading or navigating )


    ( scope: false ) — , . , , , , , , . , .

    scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

    scope: { ... } — . . , , . . . , .

    - ( «=») ( «@») . «&» . , , . ,
    — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

    __proto__ Scope ( , «Scope» «Object»). $parent , , , .



    <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

    scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

    , : scope.someIsolateProp = "I'm isolated"

    画像

    : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

    onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


    transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

    ( ) — $parent . , $$nextSibling .

    . AngularJS two way binding not working in directive with transcluded scope

    , : transclude: true

    画像


    showScope() . .


    :

    — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
    ( ), - (. . ), $parent, $$childHead $$childTail.

  3. .

    / , :

    1. $parent.parentScopeProperty
    . .
    2. , , ( )


    , , .

    parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

    画像

    ( , , anArray , .)

    , parentScope, , , , , . ( parentScope, ... ). , :

    childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
    , :

    childScope.aString = 'child string'
    , aString childScope. parentScope . , ng-repeat ng-include .

    画像

    , :

    childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
    , (anArray anObject) childScope. parentScope, . childScope; . (, .)

    画像

    , :

    childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
    , , parentScope .

    画像

    :

    childScope.propertyX childScope propertyX, . childScope.propertyX, .
    :

    delete childScope.anArray childScope.anArray[1] === 22 // true
    childScope, , , .

    画像


    :

    , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
    , , , .. scope: false .

    ng-include
    , :

    $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
    HTML:

    <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
    ng-include , .

    画像

    (, «77») , myPrimitive , .

    , , .

    画像

    (, «99») . tpl2.html , , ngModel MyObject — .

    画像

    : , «99» 11, 50.

    $parent, :

    <input ng-model="$parent.myPrimitive">
    (, «22») . ( $parent ,
    ).

    画像

    ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

    , , . , , . ,

    // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
    , « ». ( Stack Overflow .)

    . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

    ng-switch
    ng-switch ng-include. , $parent , . .

    . AngularJS, bind scope of a switch-case?

    ng-repeat
    ng-repeat -. , :

    $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
    HTML:

    <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
    /, ng-repeat , , . ( .) ng-repeat:

    childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
    ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

    画像

    ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

    , ( ) . (. ., num , ng-model) . ng-repeat , :

    画像

    ( .)

    , . , , .

    . ng-model, ng-repeat, inputs ng-repeat and databinding

    ng-view
    , , , ng-include.

    ng-controller
    ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

    ( , . . . Controller load order differs when loading or navigating )


    ( scope: false ) — , . , , , , , , . , .

    scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

    scope: { ... } — . . , , . . . , .

    - ( «=») ( «@») . «&» . , , . ,
    — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

    __proto__ Scope ( , «Scope» «Object»). $parent , , , .



    <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

    scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

    , : scope.someIsolateProp = "I'm isolated"

    画像

    : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

    onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


    transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

    ( ) — $parent . , $$nextSibling .

    . AngularJS two way binding not working in directive with transcluded scope

    , : transclude: true

    画像


    showScope() . .


    :

    — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
    ( ), - (. . ), $parent, $$childHead $$childTail.

    .

    / , :

    1. $parent.parentScopeProperty
    . .
    2. , , ( )


    , , .

    parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

    画像

    ( , , anArray , .)

    , parentScope, , , , , . ( parentScope, ... ). , :

    childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
    , :

    childScope.aString = 'child string'
    , aString childScope. parentScope . , ng-repeat ng-include .

    画像

    , :

    childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
    , (anArray anObject) childScope. parentScope, . childScope; . (, .)

    画像

    , :

    childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
    , , parentScope .

    画像

    :

    childScope.propertyX childScope propertyX, . childScope.propertyX, .
    :

    delete childScope.anArray childScope.anArray[1] === 22 // true
    childScope, , , .

    画像


    :

    , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
    , , , .. scope: false .

    ng-include
    , :

    $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
    HTML:

    <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
    ng-include , .

    画像

    (, «77») , myPrimitive , .

    , , .

    画像

    (, «99») . tpl2.html , , ngModel MyObject — .

    画像

    : , «99» 11, 50.

    $parent, :

    <input ng-model="$parent.myPrimitive">
    (, «22») . ( $parent ,
    ).

    画像

    ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

    , , . , , . ,

    // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
    , « ». ( Stack Overflow .)

    . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

    ng-switch
    ng-switch ng-include. , $parent , . .

    . AngularJS, bind scope of a switch-case?

    ng-repeat
    ng-repeat -. , :

    $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
    HTML:

    <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
    /, ng-repeat , , . ( .) ng-repeat:

    childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
    ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

    画像

    ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

    , ( ) . (. ., num , ng-model) . ng-repeat , :

    画像

    ( .)

    , . , , .

    . ng-model, ng-repeat, inputs ng-repeat and databinding

    ng-view
    , , , ng-include.

    ng-controller
    ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

    ( , . . . Controller load order differs when loading or navigating )


    ( scope: false ) — , . , , , , , , . , .

    scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

    scope: { ... } — . . , , . . . , .

    - ( «=») ( «@») . «&» . , , . ,
    — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

    __proto__ Scope ( , «Scope» «Object»). $parent , , , .



    <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

    scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

    , : scope.someIsolateProp = "I'm isolated"

    画像

    : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

    onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


    transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

    ( ) — $parent . , $$nextSibling .

    . AngularJS two way binding not working in directive with transcluded scope

    , : transclude: true

    画像


    showScope() . .


    :

    — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
    ( ), - (. . ), $parent, $$childHead $$childTail.

    .

    / , :

    1. $parent.parentScopeProperty
    . .
    2. , , ( )


    , , .

    parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

    画像

    ( , , anArray , .)

    , parentScope, , , , , . ( parentScope, ... ). , :

    childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
    , :

    childScope.aString = 'child string'
    , aString childScope. parentScope . , ng-repeat ng-include .

    画像

    , :

    childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
    , (anArray anObject) childScope. parentScope, . childScope; . (, .)

    画像

    , :

    childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
    , , parentScope .

    画像

    :

    childScope.propertyX childScope propertyX, . childScope.propertyX, .
    :

    delete childScope.anArray childScope.anArray[1] === 22 // true
    childScope, , , .

    画像


    :

    , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
    , , , .. scope: false .

    ng-include
    , :

    $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
    HTML:

    <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
    ng-include , .

    画像

    (, «77») , myPrimitive , .

    , , .

    画像

    (, «99») . tpl2.html , , ngModel MyObject — .

    画像

    : , «99» 11, 50.

    $parent, :

    <input ng-model="$parent.myPrimitive">
    (, «22») . ( $parent ,
    ).

    画像

    ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

    , , . , , . ,

    // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
    , « ». ( Stack Overflow .)

    . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

    ng-switch
    ng-switch ng-include. , $parent , . .

    . AngularJS, bind scope of a switch-case?

    ng-repeat
    ng-repeat -. , :

    $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
    HTML:

    <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
    /, ng-repeat , , . ( .) ng-repeat:

    childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
    ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

    画像

    ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

    , ( ) . (. ., num , ng-model) . ng-repeat , :

    画像

    ( .)

    , . , , .

    . ng-model, ng-repeat, inputs ng-repeat and databinding

    ng-view
    , , , ng-include.

    ng-controller
    ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

    ( , . . . Controller load order differs when loading or navigating )


    ( scope: false ) — , . , , , , , , . , .

    scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

    scope: { ... } — . . , , . . . , .

    - ( «=») ( «@») . «&» . , , . ,
    — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

    __proto__ Scope ( , «Scope» «Object»). $parent , , , .



    <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

    scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

    , : scope.someIsolateProp = "I'm isolated"

    画像

    : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

    onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


    transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

    ( ) — $parent . , $$nextSibling .

    . AngularJS two way binding not working in directive with transcluded scope

    , : transclude: true

    画像


    showScope() . .


    :

    — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
    ( ), - (. . ), $parent, $$childHead $$childTail.

    1. .

      / , :

      1. $parent.parentScopeProperty
      . .
      2. , , ( )


      , , .

      parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

      画像

      ( , , anArray , .)

      , parentScope, , , , , . ( parentScope, ... ). , :

      childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
      , :

      childScope.aString = 'child string'
      , aString childScope. parentScope . , ng-repeat ng-include .

      画像

      , :

      childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
      , (anArray anObject) childScope. parentScope, . childScope; . (, .)

      画像

      , :

      childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
      , , parentScope .

      画像

      :

      childScope.propertyX childScope propertyX, . childScope.propertyX, .
      :

      delete childScope.anArray childScope.anArray[1] === 22 // true
      childScope, , , .

      画像


      :

      , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
      , , , .. scope: false .

      ng-include
      , :

      $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
      HTML:

      <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
      ng-include , .

      画像

      (, «77») , myPrimitive , .

      , , .

      画像

      (, «99») . tpl2.html , , ngModel MyObject — .

      画像

      : , «99» 11, 50.

      $parent, :

      <input ng-model="$parent.myPrimitive">
      (, «22») . ( $parent ,
      ).

      画像

      ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

      , , . , , . ,

      // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
      , « ». ( Stack Overflow .)

      . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

      ng-switch
      ng-switch ng-include. , $parent , . .

      . AngularJS, bind scope of a switch-case?

      ng-repeat
      ng-repeat -. , :

      $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
      HTML:

      <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
      /, ng-repeat , , . ( .) ng-repeat:

      childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
      ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

      画像

      ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

      , ( ) . (. ., num , ng-model) . ng-repeat , :

      画像

      ( .)

      , . , , .

      . ng-model, ng-repeat, inputs ng-repeat and databinding

      ng-view
      , , , ng-include.

      ng-controller
      ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

      ( , . . . Controller load order differs when loading or navigating )


      ( scope: false ) — , . , , , , , , . , .

      scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

      scope: { ... } — . . , , . . . , .

      - ( «=») ( «@») . «&» . , , . ,
      — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

      __proto__ Scope ( , «Scope» «Object»). $parent , , , .



      <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

      scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

      , : scope.someIsolateProp = "I'm isolated"

      画像

      : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

      onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


      transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

      ( ) — $parent . , $$nextSibling .

      . AngularJS two way binding not working in directive with transcluded scope

      , : transclude: true

      画像


      showScope() . .


      :

      — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
      ( ), - (. . ), $parent, $$childHead $$childTail.

    2. .

      / , :

      1. $parent.parentScopeProperty
      . .
      2. , , ( )


      , , .

      parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

      画像

      ( , , anArray , .)

      , parentScope, , , , , . ( parentScope, ... ). , :

      childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
      , :

      childScope.aString = 'child string'
      , aString childScope. parentScope . , ng-repeat ng-include .

      画像

      , :

      childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
      , (anArray anObject) childScope. parentScope, . childScope; . (, .)

      画像

      , :

      childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
      , , parentScope .

      画像

      :

      childScope.propertyX childScope propertyX, . childScope.propertyX, .
      :

      delete childScope.anArray childScope.anArray[1] === 22 // true
      childScope, , , .

      画像


      :

      , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
      , , , .. scope: false .

      ng-include
      , :

      $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
      HTML:

      <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
      ng-include , .

      画像

      (, «77») , myPrimitive , .

      , , .

      画像

      (, «99») . tpl2.html , , ngModel MyObject — .

      画像

      : , «99» 11, 50.

      $parent, :

      <input ng-model="$parent.myPrimitive">
      (, «22») . ( $parent ,
      ).

      画像

      ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

      , , . , , . ,

      // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
      , « ». ( Stack Overflow .)

      . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

      ng-switch
      ng-switch ng-include. , $parent , . .

      . AngularJS, bind scope of a switch-case?

      ng-repeat
      ng-repeat -. , :

      $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
      HTML:

      <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
      /, ng-repeat , , . ( .) ng-repeat:

      childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
      ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

      画像

      ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

      , ( ) . (. ., num , ng-model) . ng-repeat , :

      画像

      ( .)

      , . , , .

      . ng-model, ng-repeat, inputs ng-repeat and databinding

      ng-view
      , , , ng-include.

      ng-controller
      ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

      ( , . . . Controller load order differs when loading or navigating )


      ( scope: false ) — , . , , , , , , . , .

      scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

      scope: { ... } — . . , , . . . , .

      - ( «=») ( «@») . «&» . , , . ,
      — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

      __proto__ Scope ( , «Scope» «Object»). $parent , , , .



      <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

      scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

      , : scope.someIsolateProp = "I'm isolated"

      画像

      : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

      onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


      transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

      ( ) — $parent . , $$nextSibling .

      . AngularJS two way binding not working in directive with transcluded scope

      , : transclude: true

      画像


      showScope() . .


      :

      — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
      ( ), - (. . ), $parent, $$childHead $$childTail.

    3. .

      / , :

      1. $parent.parentScopeProperty
      . .
      2. , , ( )


      , , .

      parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

      画像

      ( , , anArray , .)

      , parentScope, , , , , . ( parentScope, ... ). , :

      childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
      , :

      childScope.aString = 'child string'
      , aString childScope. parentScope . , ng-repeat ng-include .

      画像

      , :

      childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
      , (anArray anObject) childScope. parentScope, . childScope; . (, .)

      画像

      , :

      childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
      , , parentScope .

      画像

      :

      childScope.propertyX childScope propertyX, . childScope.propertyX, .
      :

      delete childScope.anArray childScope.anArray[1] === 22 // true
      childScope, , , .

      画像


      :

      , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
      , , , .. scope: false .

      ng-include
      , :

      $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
      HTML:

      <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
      ng-include , .

      画像

      (, «77») , myPrimitive , .

      , , .

      画像

      (, «99») . tpl2.html , , ngModel MyObject — .

      画像

      : , «99» 11, 50.

      $parent, :

      <input ng-model="$parent.myPrimitive">
      (, «22») . ( $parent ,
      ).

      画像

      ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

      , , . , , . ,

      // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
      , « ». ( Stack Overflow .)

      . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

      ng-switch
      ng-switch ng-include. , $parent , . .

      . AngularJS, bind scope of a switch-case?

      ng-repeat
      ng-repeat -. , :

      $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
      HTML:

      <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
      /, ng-repeat , , . ( .) ng-repeat:

      childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
      ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

      画像

      ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

      , ( ) . (. ., num , ng-model) . ng-repeat , :

      画像

      ( .)

      , . , , .

      . ng-model, ng-repeat, inputs ng-repeat and databinding

      ng-view
      , , , ng-include.

      ng-controller
      ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

      ( , . . . Controller load order differs when loading or navigating )


      ( scope: false ) — , . , , , , , , . , .

      scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

      scope: { ... } — . . , , . . . , .

      - ( «=») ( «@») . «&» . , , . ,
      — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

      __proto__ Scope ( , «Scope» «Object»). $parent , , , .



      <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

      scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

      , : scope.someIsolateProp = "I'm isolated"

      画像

      : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

      onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


      transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

      ( ) — $parent . , $$nextSibling .

      . AngularJS two way binding not working in directive with transcluded scope

      , : transclude: true

      画像


      showScope() . .


      :

      — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
      ( ), - (. . ), $parent, $$childHead $$childTail.

    4. .

      / , :

      1. $parent.parentScopeProperty
      . .
      2. , , ( )


      , , .

      parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

      画像

      ( , , anArray , .)

      , parentScope, , , , , . ( parentScope, ... ). , :

      childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
      , :

      childScope.aString = 'child string'
      , aString childScope. parentScope . , ng-repeat ng-include .

      画像

      , :

      childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
      , (anArray anObject) childScope. parentScope, . childScope; . (, .)

      画像

      , :

      childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
      , , parentScope .

      画像

      :

      childScope.propertyX childScope propertyX, . childScope.propertyX, .
      :

      delete childScope.anArray childScope.anArray[1] === 22 // true
      childScope, , , .

      画像


      :

      , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
      , , , .. scope: false .

      ng-include
      , :

      $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
      HTML:

      <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
      ng-include , .

      画像

      (, «77») , myPrimitive , .

      , , .

      画像

      (, «99») . tpl2.html , , ngModel MyObject — .

      画像

      : , «99» 11, 50.

      $parent, :

      <input ng-model="$parent.myPrimitive">
      (, «22») . ( $parent ,
      ).

      画像

      ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

      , , . , , . ,

      // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
      , « ». ( Stack Overflow .)

      . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

      ng-switch
      ng-switch ng-include. , $parent , . .

      . AngularJS, bind scope of a switch-case?

      ng-repeat
      ng-repeat -. , :

      $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
      HTML:

      <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
      /, ng-repeat , , . ( .) ng-repeat:

      childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
      ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

      画像

      ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

      , ( ) . (. ., num , ng-model) . ng-repeat , :

      画像

      ( .)

      , . , , .

      . ng-model, ng-repeat, inputs ng-repeat and databinding

      ng-view
      , , , ng-include.

      ng-controller
      ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

      ( , . . . Controller load order differs when loading or navigating )


      ( scope: false ) — , . , , , , , , . , .

      scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

      scope: { ... } — . . , , . . . , .

      - ( «=») ( «@») . «&» . , , . ,
      — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

      __proto__ Scope ( , «Scope» «Object»). $parent , , , .



      <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

      scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

      , : scope.someIsolateProp = "I'm isolated"

      画像

      : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

      onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


      transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

      ( ) — $parent . , $$nextSibling .

      . AngularJS two way binding not working in directive with transcluded scope

      , : transclude: true

      画像


      showScope() . .


      :

      — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
      ( ), - (. . ), $parent, $$childHead $$childTail.

    .

    / , :

    1. $parent.parentScopeProperty
    . .
    2. , , ( )


    , , .

    parentScope aString, aNumber, anArray, anObject, aFunction. childScope parentScope, :

    画像

    ( , , anArray , .)

    , parentScope, , , , , . ( parentScope, ... ). , :

    childScope.aString === 'parent string' childScope.anArray[1] === 20 childScope.anObject.property1 === 'parent prop1' childScope.aFunction() === 'parent output'
    , :

    childScope.aString = 'child string'
    , aString childScope. parentScope . , ng-repeat ng-include .

    画像

    , :

    childScope.anArray[1] = '22' childScope.anObject.property1 = 'child prop1'
    , (anArray anObject) childScope. parentScope, . childScope; . (, .)

    画像

    , :

    childScope.anArray = [100, 555] childScope.anObject = { name: 'Mark', country: 'USA' }
    , , parentScope .

    画像

    :

    childScope.propertyX childScope propertyX, . childScope.propertyX, .
    :

    delete childScope.anArray childScope.anArray[1] === 22 // true
    childScope, , , .

    画像


    :

    , : ng-repeat, ng-include, ng-switch, ng-view, ng-controller, scope: true , transclude: true . , : scope: { ... } . «» .
    , , , .. scope: false .

    ng-include
    , :

    $scope.myPrimitive = 50; $scope.myObject = {aNumber: 11};
    HTML:

    <script type="text/ng-template" id="/tpl1.html"> <input ng-model="myPrimitive"> </script> <div ng-include src="'/tpl1.html'"></div> <script type="text/ng-template" id="/tpl2.html"> <input ng-model="myObject.aNumber"> </script> <div ng-include src="'/tpl2.html'"></div>
    ng-include , .

    画像

    (, «77») , myPrimitive , .

    , , .

    画像

    (, «99») . tpl2.html , , ngModel MyObject — .

    画像

    : , «99» 11, 50.

    $parent, :

    <input ng-model="$parent.myPrimitive">
    (, «22») . ( $parent ,
    ).

    画像

    ( ), Angular - (. . ), $parent, $$childHead $$childTail . .

    , , . , , . ,

    // $scope.setMyPrimitive = function(value) { $scope.myPrimitive = value; }
    , « ». ( Stack Overflow .)

    . stackoverflow.com/a/13782671/215945 github.com/angular/angular.js/issues/1267 .

    ng-switch
    ng-switch ng-include. , $parent , . .

    . AngularJS, bind scope of a switch-case?

    ng-repeat
    ng-repeat -. , :

    $scope.myArrayOfPrimitives = [ 11, 22 ]; $scope.myArrayOfObjects = [{num: 101}, {num: 202}]
    HTML:

    <ul> <li ng-repeat="num in myArrayOfPrimitives"> <input ng-model="num"> </li> <ul> <ul> <li ng-repeat="obj in myArrayOfObjects"> <input ng-model="obj.num"> </li> <ul>
    /, ng-repeat , , . ( .) ng-repeat:

    childScope = scope.$new(); // ... childScope[valueIdent] = value; // childScope
    ( myArrayOfPrimitives), , . (. ., num , ng-model) . , ng-repeat , num , myArrayOfPrimitives:

    画像

    ng-repeat ( ). Angular 1.0.2 , , , . Angular 1.0.3 +, . (. , .) , myArrayOfPrimitives, . , .

    , ( ) . (. ., num , ng-model) . ng-repeat , :

    画像

    ( .)

    , . , , .

    . ng-model, ng-repeat, inputs ng-repeat and databinding

    ng-view
    , , , ng-include.

    ng-controller
    ( ng-controller) , ng-include ng-switch, . « $scope» — onehungrymind.com/angularjs-sticky-notes-pt-1-architecture . .

    ( , . . . Controller load order differs when loading or navigating )


    ( scope: false ) — , . , , , , , , . , .

    scope: true — , . ( DOM ) , . . . «» , ng-include ng-switch, .

    scope: { ... } — . . , , . . . , .

    - ( «=») ( «@») . «&» . , , . ,
    — -, . , parentProp : {scope: localProp: '@parentProp' } . : scope: { localProp: '@theParentProp' } .

    __proto__ Scope ( , «Scope» «Object»). $parent , , , .



    <my-directive interpolated="{{parentProp1}}" twowayBinding="parentProp2">

    scope: { interpolatedProp: '@interpolated', twowayBindingProp: '=twowayBinding' }

    , : scope.someIsolateProp = "I'm isolated"

    画像

    : attrs.$observe('attr_name', function(value) { ... } , «@». , — attrs.$observe('interpolated', function(value) { ... }value 11. ( scope.interpolatedProp . , scope.twowayBindingProp , . . «=».)

    onehungrymind.com/angularjs-sticky-notes-pt-2-isolated-scope


    transclude: true — «» , . , (. ., , ng-transclude) , $parent ,

    ( ) — $parent . , $$nextSibling .

    . AngularJS two way binding not working in directive with transcluded scope

    , : transclude: true

    画像


    showScope() . .


    :

    — ng-include, ng-switch, ng-controller, scope: true — ng-repeat. ng-repeat , . — scope: {...} . , «=», «@», «&» . — transclude: true . , - .
    ( ), - (. . ), $parent, $$childHead $$childTail.

Source: https://habr.com/ru/post/J182670/


All Articles