初対面AngularJS

67856 ワード

<!--
.titleTop{width:98%;margin:0 auto;background:rgb(31112355);border-radius:5 px;color:white;font-family:“マイクロソフトブラック”;font-size:18 px;height:40 px;line-height:40 px;padding-left:10 px;#13;
-->
月曜日に新しい会社に入社して、AngularJSを使うと聞いたので、今週末はずっとAngularJSの勉強と認識を強化します.
so, let's start...
 api:http://docs.angularjs.org/api/ng/function/angular.bootstrap
1 AngularJSの核心はMVCモジュール化自動化双方向データバインドの意味化ラベル依存注入である
上の具体的な使い方はまだよく分かりませんが、まずmarkを降りて、後でゆっくり理解しています.
 
1 Hello world!
まず公式サイトでangularをダウンロードします.js、それからhtmlファイルを修正しなければなりません
<!DOCTYPE html>

<html ng-app>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <script>
        function hello($scope) {
            $scope.name = "world";
        } 
    </script>
</head>
<body ng-controller="hello">
    <h1>
        hello {{name}}
    </h1>
</body>
</html>

注意しなければならないのは
1 ng-appを指定する必要があります
2 ng-controller区分vmの作用範囲
3関数の最初のパラメータは$scopeでなければなりません
4 ie 7の下で正常ではありませんて、しばらく私はまだ解决方法を探し当てていないで、先に放して、深く理解してから帰って解决して、mark
 
もう一つの見知らぬ名詞ng-modelを理解してみましょう.私の現在の理解はデータをバインドするために使われています.
例をみる
<!DOCTYPE html>

<html ng-app>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <script>
        function helloControler($scope) {
            $scope.name = "world";
            $scope.greet = {name:'Jackey',sex:'male'};
        } 
    </script>
</head>
<body ng-controller="helloControler">
    <h1>
        <input ng-model="greet.name" />
        <p>{{greet.name}},go</p>
    </h1>
</body>
</html>

初认识AngularJS
司徒正美のブログを見てhttp://www.cnblogs.com/rubylouvre/p/3140251.html
 
2参考生産環境の書き方を勉強する
<!DOCTYPE html>

<html ng-app="text">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <script>
        angular.module("text", []).controller("helloControler", function ($scope) {
            $scope.greet = "Jackey";
        });
    </script>
</head>
<body ng-controller="helloControler">
    <h1>
        <input ng-model="greet.name" />
        <p>{{greet}},go</p>
    </h1>
</body>
</html>

主な注意点は次のとおりです.
1 ng-app:“text”とmoduleが一致する
 
3バインドデータ
さらに、ng-bind/ng-bind-html/ng-bind-html-unsafeでデータをバインドしてみましょう.
効果を見る
<!DOCTYPE html>

<html ng-app="text">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <script>
        angular.module("text", []).controller("helloControler", function ($scope) {
            $scope.htm = "<strong>Jackey</strong>";
        });
    </script>
</head>
<body ng-controller="helloControler">
    <h1></h1>
        <input ng-model="htm" />
        <p>{{htm}},go</p>
        <p ng-bind-html-unsafe="htm"></p>
        <p ng-bind-htmle="htm"></p>
        <p ng-bind="htm"></p>
</body>
</html>

テストの結果、ng-bindだけがデータを正常にバインドできます.
 
4サイクル出力
ループ出力
<!DOCTYPE html>

<html ng-app="text">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <script>
        //angular.module("text", []).controller("helloControler", function ($scope) {
            //$scope.htm = "<strong>Jackey</strong>";
        //});
        angular.module("text", []).controller("eachController", function ($scope, $timeout) {
            $scope.friends = [{ name: 'Jackey', age: 25 }, { name: 'Cassi', age: 20 }, { name: 'JC', age: 1.2}];
            $timeout(function () {
                $scope.friends.push({ name: 'add', age: 10 });
            }, 1000);
        });
        
    </script>
</head>
<body ng-controller="eachController">
    <!--<div ng-controller="helloControler">
        <h1>    </h1>
            <input ng-model="htm" />
            <p>{{htm}},go</p>
            <p ng-bind-html-unsafe="htm"></p>
            <p ng-bind-htmle="htm"></p>
            <p ng-bind="htm"></p>
    </div>-->
    <div >
        <h1>  </h1>
        <h2>I have {{friends.length}} friends,they are:</h2>
        <ul>
            <li ng-repeat="friend in friends">
                [{{$index+1}}] {{friend.name}} who is {{friend.age}} years old
            </li>
        </ul>
    </div>
</body>
</html>

  初认识AngularJS
 
再び正美のことを学ぶ
$timeoutを使用したくない場合は、まずグローバル変数を宣言し、$scopeを割り当て、js原生態の関数を周辺で使用します.
しかし、注意しなければならないのは何かを追加することです.コードを見てください:
<!DOCTYPE html>

<html ng-app="text">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <script>
        //angular.module("text", []).controller("helloControler", function ($scope) {
            //$scope.htm = "<strong>Jackey</strong>";
        //});
        var s;
        angular.module("text", []).controller("eachController", function ($scope, $timeout) {
            $scope.friends = [{ name: 'Jackey', age: 25 }, { name: 'Cassi', age: 20 }, { name: 'JC', age: 1.2}];
            s = $scope;
            //$timeout(function () {
                //$scope.friends.push({ name: 'add', age: 10 });
            //}, 1000);
        });
        setTimeout(function () {
            s.friends.push({ name: 'add', age: 10 });
            s.$digest();//   
        }, 1000);
        setInterval(function () {
            s.friends.push({ name: 'add', age: 10 });
            s.$digest(); //   
        },1000);
    </script>
</head>
<body ng-controller="eachController">
    <!--<div ng-controller="helloControler">
        <h1>    </h1>
            <input ng-model="htm" />
            <p>{{htm}},go</p>
            <p ng-bind-html-unsafe="htm"></p>
            <p ng-bind-htmle="htm"></p>
            <p ng-bind="htm"></p>
    </div>-->
    <div >
        <h1>  </h1>
        <h2>I have {{friends.length}} friends,they are:</h2>
        <ul>
            <li ng-repeat="friend in friends">
                [{{$index+1}}] {{friend.name}} who is {{friend.age}} years old
            </li>
        </ul>
    </div>
</body>
</html>

この必要なものは
s.$digest(); //   

5イベント
まず簡単なclickイベントを作りましょう
コードを見る
<!DOCTYPE html>

<html ng-app="text">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <script>
        //angular.module("text", []).controller("helloControler", function ($scope) {
            //$scope.htm = "<strong>Jackey</strong>";
        //});
        var s;
        angular.module("text", []).controller("eachController", function ($scope, $timeout) {
            $scope.friends = [{ name: 'Jackey', age: 25 }, { name: 'Cassi', age: 20 }, { name: 'JC', age: 1.2}];
            s = $scope;
            //$timeout(function () {
            //$scope.friends.push({ name: 'add', age: 10 });
            //}, 1000);
            $scope.name = "Jackey";
            $scope.changeName = function () {
                $scope.name = "Cassi";
            };
        });
        setTimeout(function () {
            s.friends.push({ name: 'add', age: 10 });
            s.$digest();//   
        }, 1000);
        //setInterval(function () {
            //s.friends.push({ name: 'add', age: 10 });
            //s.$digest(); //   
        //},1000);
    </script>
</head>
<body ng-controller="eachController">
    <!--<div ng-controller="helloControler">
        <h1>    </h1>
            <input ng-model="htm" />
            <p>{{htm}},go</p>
            <p ng-bind-html-unsafe="htm"></p>
            <p ng-bind-htmle="htm"></p>
            <p ng-bind="htm"></p>
    </div>-->
    <div >
        <h1>  </h1>
        <h2>I have {{friends.length}} friends,they are:</h2>
        <ul>
            <li ng-repeat="friend in friends">
                [{{$index+1}}] {{friend.name}} who is {{friend.age}} years old
            </li>
        </ul>

        <h2>    </h2>
        <button ng-click="changeName()">  </button>
        <p>my name is {{name}} sparrow</p>
    </div>
</body>
</html>

 
6バインド修正スタイル
<!DOCTYPE html>

<html ng-app="text">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <script src="angular.min.js"></script>
    <style>
    .row
    {
         background:yellow;
        }
    .row-noton
    {
         background:white;
        }
    </style>
    <script>
        //angular.module("text", []).controller("helloControler", function ($scope) {
            //$scope.htm = "<strong>Jackey</strong>";
        //});
        var s;
        angular.module("text", []).controller("eachController", function ($scope, $timeout) {
            $scope.friends = [{ name: 'Jackey', age: 25 }, { name: 'Cassi', age: 20 }, { name: 'JC', age: 1.2}];
            s = $scope;
            //$timeout(function () {
            //$scope.friends.push({ name: 'add', age: 10 });
            //}, 1000);
            $scope.name = "Jackey";
            $scope.changeName = function () {
                $scope.name = "Cassi";
            };
            $scope.remove = function (index) {
                $scope.friends.splice(index, 1);
            };

            $scope.starting = { begin: 0 };
            $scope.needed = 0;
            $scope.changeMoney = function () {
                $scope.needed = $scope.starting.begin * 10;
            };


            $scope.show = "noton";
            $scope.changeBackground = function (index) {
                $scope.selectRow = index;
            };
            $scope.$watch('starting.begin', $scope.changeMoney); //    
        }).controller("helloController", function ($scope) {
            $scope.name = "Cassi";
        });
        setTimeout(function () {
            s.friends.push({ name: 'add', age: 10 });
            s.$digest();//   
        }, 1000);
        //setInterval(function () {
            //s.friends.push({ name: 'add', age: 10 });
            //s.$digest(); //   
        //},1000);
    </script>
</head>
<body >
    <!--<div ng-controller="helloControler">
        <h1>    </h1>
            <input ng-model="htm" />
            <p>{{htm}},go</p>
            <p ng-bind-html-unsafe="htm"></p>
            <p ng-bind-htmle="htm"></p>
            <p ng-bind="htm"></p>
    </div>-->
    <div ng-controller="eachController">
        <h1>  </h1>
        <h2>I have {{friends.length}} friends,they are:</h2>
        <ul>
            <li ng-repeat="friend in friends" ng-class='{row:$index==selectRow}'  ng-click='changeBackground($index)' >
                [{{$index+1}}] {{friend.name}} who is {{friend.age}} years old
                <button ng-click="remove($index)">  </button>
            </li>
        </ul>

        <h2>    </h2>
        <button ng-click="changeName()">  </button>
        <p>my name is {{name}} sparrow</p>

        <h2>change  </h2>
        <input ng-change="changeMoney()" ng-model="starting.begin"/>
        result:{{needed}}
    </div>

    <div ng-controller="helloController">
    <h2>  controller</h2>
    {{name}}
    </div>
</body>
</html>

 
ng-class='{row:$index==selectRow}'       row    row