码迷,mamicode.com
首页 > Web开发 > 详细

AngularJS 控制器

时间:2015-09-16 12:09:07      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

一,表达式:

<!doctype html>
<html ng-app="myApp">
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.3/angular.js"></script>
</head>
<body>

    <h1 ng-init="greeting = ‘Hello World‘">The greeting is: {{ greeting }}</h1>

    <script>
        angular.module(‘myApp‘, []);
    </script>

</body>
</html>
<script src="greeter.js"></script>

 二,表达式计算:

<!doctype html>
<html ng-app="myApp">
<head>
    <title>Parse Expression Example</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.2/angular.js"></script>
    <script type="text/javascript">
        // open this example and type person.name into the test field
        angular.module(‘myApp‘, [])
        .controller(‘MyController‘,
        [‘$scope‘, ‘$parse‘, function ($scope, $parse) {

            $scope.person = {
                name: "Ari Lerner"
            };

            $scope.$watch(‘expr‘, function (newVal, oldVal, scope) {
                if (newVal !== oldVal) {
                    // Let‘s set up our parseFun with the expression
                    var parseFun = $parse(newVal);
                    // Get the value of the parsed expression, set it on the scope for output
                    scope.parsedExpr = parseFun(scope);
                }
            });
        }]);
    </script>
</head>
<body>

<div ng-controller="MyController">
    <input ng-model="expr"
           type="text"
           placeholder="Enter an expression"/>
    <div>{{ parsedExpr }}</div>
</div>
</body>
</html>

 三,插值字符串, template({ to: $scope.to }):

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script>
    <script type="text/javascript">
        angular.module(‘myApp‘, [])
        .controller(‘MyController‘, function ($scope, $interpolate) {
        $scope.to = ‘ari@fullstack.io‘;
        $scope.emailBody = ‘Hello {{ to }},\n\nMy name is Ari too!‘;
        // Set up a watch
        $scope.$watch(‘emailBody‘, function (body) {
            if (body) {
                var template = $interpolate(body);
                $scope.previewText =
                  template({ to: $scope.to });
            }
        });
    });
    </script>
    <meta charset=utf-8 />
    <title>JS Bin</title>
</head>
<body ng-app="myApp">
    <div ng-controller="MyController">
        <input ng-model="to"
               type="email"
               placeholder="Recipient" />
        <textarea ng-model="emailBody"></textarea>
        <pre>{{ previewText }}</pre>
    </div>
</body>
</html>

 四,自定义插值服务 ‘emailParser‘:

<!doctype html>
<html ng-app="myApp">
<head>
    <title>Interpolate String Template Example</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.js"></script>
    <script type="text/javascript">
        // to see this example in action open in your browser, type
        // an email address into the email field. Then in the text area
        // box type: Hello __ to __.

        angular.module(‘myApp‘, [‘emailParser‘])
          .controller(‘MyController‘,
            [‘$scope‘, ‘EmailParser‘,
              function ($scope, EmailParser) {
                  $scope.to = ‘ari@fullstack.io‘;
                  $scope.emailBody = ‘Hello __to__‘;
                  // Set up a watch
                  $scope.$watch(‘emailBody‘, function (body) {
                      if (body) {
                          $scope.previewText =
                            EmailParser.parse(body, {
                                to: $scope.to
                            });
                      }
                  });
              }]);

        angular.module(‘emailParser‘, [])
          .config([‘$interpolateProvider‘,
            function ($interpolateProvider) {
                $interpolateProvider.startSymbol(‘__‘);
                $interpolateProvider.endSymbol(‘__‘);
            }])
        .factory(‘EmailParser‘, [‘$interpolate‘,
          function ($interpolate) {
              // a service to handle parsing
              return {
                  parse: function (text, context) {
                      var template = $interpolate(text);
                      return template(context);
                  }
              };
          }]);
    </script>
</head>
<body>

    <div id="emailEditor" ng-controller="MyController">
        <input ng-model="to"
               type="email"
               placeholder="Recipient" />
        <textarea ng-model="emailBody"></textarea>

        <div id="emailPreview">
            <pre>__ previewText __</pre>
        </div>
    </div>

 

 

五,作用域:

<!doctype html>
<html ng-app="myApp">
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0-rc.3/angular.js"></script>
    <style>
        #parentCtrl {
            background-color: yellow;
            padding: 10px;
        }

        #childCtrl {
            background-color: green;
            padding: 10px;
        }
    </style>
</head>
<body>

    <p>We can access: {{ rootProperty }}</p>
    <div id="parentCtrl" ng-controller="ParentCtrl">
        <p>We can access: {{ rootProperty }} and {{ parentProperty }}</p>
        <div id="childCtrl" ng-controller="ChildCtrl">
            <p>
                We can access:
                {{ rootProperty }} and
                {{ parentProperty }} and
                {{ childProperty }}
            </p>
            <p>{{ fullSentenceFromChild }}</p>
        </div>
    </div>

    <script>
        angular.module(‘myApp‘, [])
        .run(function ($rootScope) {
            // use .run to access $rootScope
            $rootScope.rootProperty = ‘root scope‘;
        })
        .controller(‘ParentCtrl‘, function ($scope) {
            // use .controller to access properties inside `ng-controller`
            // in the DOM omit $scope, it is inferred based on the current controller
            $scope.parentProperty = ‘parent scope‘;
        })
        .controller(‘ChildCtrl‘, function ($scope) {
            $scope.childProperty = ‘child scope‘;
            // just like in the DOM, we can access any of the properties in the
            // prototype chain directly from the current $scope
            $scope.fullSentenceFromChild = ‘Same $scope: We can access: ‘ +
                                           $scope.rootProperty + ‘ and ‘ +
                                           $scope.parentProperty + ‘ and ‘ +
                                           $scope.childProperty
        });
    </script>

</body>
</html>

 

AngularJS 控制器

标签:

原文地址:http://www.cnblogs.com/ByronWu12345/p/4812608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!