0

AngularJS で簡単なゲストブックを作成し、名前を読み込んで簡単なファイルに書き込もうとしています。問題は、コードをファイルから読み取ることさえできないように見えることです。

これは私のディレクトリ構造です:

ディレクトリ構造

これは index.html です:

<!DOCTYPE html>
<html ng-app>
    <head>
        <meta charset="ISO-8859-1">
        <title>GuestBook</title>
        <script src="http://code.angularjs.org/angular-1.0.0rc3.min.js"></script>
        <script type="text/javascript" src="javascript/user.js"></script>
    </head>
    <body>
        <h1>Welcome!</h1>
        <div ng-controller="UserCtrl">
            <ul class="unstyled">
                <li ng-repeat="user in users">
                    {{user}}
                </li>
            </ul>
        </div>
    </body>
</html>

これはuser.jsです(この質問/回答に基づいています):

function UserCtrl($scope) {

    $scope.users = $(function() {
        $.get('data/users', function(data) {
            var array = data.split(',');
            console.log(array);
        });
    });
}

そして、これは私のユーザーファイルです:

John,Jacob,James

私はこの結果を期待しています:

いらっしゃいませ!

  • ジョン
  • ジェイコブ
  • ジェームズ

しかし、代わりに、私が得るのは次のとおりです。

いらっしゃいませ!

だから私の質問は、 $scope.users に users ファイルの名前を入力するにはどうすればよいですか?

ハードコードしたときに目的の結果を得ることができたので、AngularJS が正しくセットアップされていることはわかっています。

$scope.users =[John,Jacob,James];

また、JavaScript や AngularJS を使用してファイルを読み書きする方法について、Stack Overflow をグーグルで検索したり検索したりするのに多くの時間を費やしましたが、

  1. 私がやろうとしていることを正確にやろうとしている人は誰もいないようです。
  2. 指示がわかりにくいか、私がやろうとしていることには実際には当てはまりません。

また、users ファイルに名前を保持するコードをどこから書き始めればよいかわかりませんが、とりあえずファイルを読んで、後で別の質問でファイルに書き込む方法を尋ねることができれば幸いです。 . (ただし、書き込み方法も教えていただければ、さらに感謝します。)

4

4 に答える 4

4

まず、Angular の $http サービスをコントローラーに挿入してみてください。また、「data/users」パスの前に「/」を必ず追加してください。(/データ/ユーザー)

function UserCtrl($scope, $http) {
    $scope.users = [];
    $http.get('/data/users')
        .success(function(data, status, headers, config) {
            if (data && status === 200) {
                $scope.users = data.split(',');
                console.log($scope.users);
            }
        });
    });
}

コンソールをチェックして、返されるデータの種類を確認できます。(ネットワークタブ)

編集: $(function ... の部分が意味をなさないことに気付きました。

于 2013-10-10T15:20:52.753 に答える