<!doctype html> <html ng-app="firstApp"> <head> <meta charset="utf-8"> <script src="angular-1.3.0.js"></script> </head> <body> <div ng-controller="parentCtrl"> <input ng-model="args"> <div ng-controller="childCtrl"> <input ng-model="args"> </div> </div> <script> var app=angular.module('firstApp',[]); app.controller('parentCtrl',function($scope) { $scope.args = '123'; }).controller('childCtrl', function($scope) { }); </script>
Perihalan kes:
Walaupun tiada atribut args khusus ditakrifkan dalam childCtrl, kerana skop childCtrl mewarisi daripada skop parentCtrl,
Oleh itu, childCtrl dipautkan kepada harta args skop induk melalui prototaip dan ditetapkan kepada input. Dan nilai input dalam input induk disegerakkan secara automatik ke input anak
Tetapi sebaliknya tidak benar. Iaitu, pengubahsuaian dalam kanak-kanak tidak boleh mengubah nilai dalam ibu bapa, dan kanak-kanak itu juga tidak segerak selepas ibu bapa diubah suai Sebabnya: apabila memasukkan kandungan dalam skop kanak-kanak,
Oleh kerana model dalam kod HTML terikat secara eksplisit pada skop childCtrl, AngularJS akan menjana atribut jenis primitif args untuk childCtrl.
Menurut mekanisme prototaip warisan skop AngularJS, childCtrl mencari nilai atribut args dalam skopnya sendiri, jadi ia tidak mencari nilai args daripada induk.
Akibatnya, skop kanak-kanak mempunyai args dan skop ibu bapa mempunyai args, dan nilai antara anak dan ibu bapa tidak akan disegerakkan lagi.
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.