2013-06-20 13 views
22

私はangularjsの初心者です。私は私のホームページに投稿のリストがあるアプリケーションを構築しています。私はanglejsをそのページだけのための双方向バインディングのために使うことを考えました。私はサンプルページから始めましたが、ここで問題が発生しました。Angularjs引数が文字列を持っていません

私のサンプルページ。私はanglejsがページの他の側面とやり取りするのをやめたいので、このdivだけでng-appを使用しています。

<div ng-app="posts"> 
    <ul class="post_list" ng-controller="PostController"> 
    <li ng-repeat="post in posts"> 
    {{post.title}} 
    {{post.description}} 
    </li> 
    </ul> 
</div> 

私は私のホーム・ページをロードすると

var app = angular.module('posts', []); 

(function(angular, app) { 
    // Define the Controller as the constructor function. 
    console.log(app); 
    console.log(angular); 
    app.controller("PostController",["$scope"], function($scope) { 
    $scope.posts = [ 
     {"title":"asdf", "description":"describe"}, 
     {"title":"second one", "description":"second describe"}, 
    ]; 
    }); 
})(angular, app); 

とpostcontroller.jsファイルを持っているapp.jsファイルを持っています。私は得ています

私はここで何が欠けています。私は完全に混乱しているので、私を助けてください。私はangularjsとjavascriptに新しいです。

答えて

47

あなたのコントローラを宣言する方法に問題があります。以下に示すように、あなたがそれを行う必要があります。

app.controller("PostController",["$scope", function($scope) { 
    $scope.posts = [ 
     {"title":"asdf", "description":"describe"}, 
     {"title":"second one", "description":"second describe"}, 
    ]; 
    }]); 

を第2引数は配列の要素として$scope文字列と機能の両方を持つ配列であることに注意してください。これは、安全性の低いコードを書くために使用される適切な構文です。

+0

これらの変更後は正常に機能しました。なぜこの構文が最小化で動作するのかを説明するいくつかのリソースを教えてください。ご協力いただきありがとうございます。 –

+1

@ R.A.J http://docs.angularjs.org/guide/diの「Dependency Annotation」セクションを参照してください。 –

+0

Minificationは関数と引数の名前を変更しますが、文字列リテラルは変更しません。 –

関連する問題