Angulars Controller 역할 도메인 상속

9207 단어 angularjs

Angulars Controller 역할 도메인 상속


1, 누드 값, 참조가 아닌 복사

<html>
    <head>
        <meta charset="UTF-8">
        <title>dasdtitle>
        <script src="angular-1.0.1.min.js">script>
    head>
    <body ng-app='myApp'>
        <div ng-controller="SomeController">
            {{ someBareValue }}
            <button ng-click="someAction()">Communicate to childbutton>
            <div ng-controller="ChildController">
                {{ someBareValue }}
                <button ng-click="childAction()">Communicate to parentbutton>
            div>
        div>
        <script>
            angular.module('myApp', [])
                .controller('SomeController', function($scope) {
                    //  , 
                    $scope.someBareValue = 'hello computer';
                    //  $scope  , 
                    $scope.someAction = function() {
                        //  SomeController ChildController {{ someBareValue }} 
                        $scope.someBareValue = 'hello human, from parent';
                    };
                })
                .controller('ChildController', function($scope) {
                    $scope.childAction = function() {
                        //  ChildController {{ someBareValue }} 
                        $scope.someBareValue = 'hello human, from child';
                    };
                });
        script>
    body>
html>

childbutton을 누르면parentbutton이 변하지 않습니다. 하위 작용역이 부모 작용역에 대한 $scope 인용은 인용이 아니라 복제할 가치가 있음을 나타냅니다.
2. 대상 속성은 복제가 아니라 인용입니다. 모델 대상의 속성을 문자열로 설정하면 인용을 통해 공유됩니다. 따라서 하위 scope에서 속성을 수정하면 부모 scope에서 이 속성을 수정합니다.다음 예에서는 올바른 방법을 보여 줍니다.

<html>
    <head>
        <meta charset="UTF-8">
        <title>dasdtitle>
        <script src="angular-1.0.1.min.js">script>
    head>
    <body ng-app='myApp'>
        <div ng-controller="SomeController">
            {{ someModel.someValue }}
            <button ng-click="someAction()">Communicate to childbutton>
            <div ng-controller="ChildController">
                {{ someModel.someValue }}
                <button ng-click="childAction()">Communicate to parentbutton>
            div>
        div>
        <script>
            angular.module('myApp', [])
                .controller('SomeController', function($scope) {
                    //  , 
                    $scope.someModel = {
                        someValue: 'hello computer'
                    }
                    $scope.someAction = function() {
                        $scope.someModel.someValue = 'hello human, from parent';
                    };
                })
                .controller('ChildController', function($scope) {
                    $scope.childAction = function() {
                        $scope.someModel.someValue = 'hello human, from child';
                    };
                });
        script>
    body>
html>

어떤 단추를 누르든지 값은 동기화 수정됩니다.

좋은 웹페이지 즐겨찾기