1

私はangularjsが初めてです

angularjs を requirejs と統合しようとしています。どのようにエラーが発生していますか

Uncaught Error: No module: app

これが私のセットアップです

メイン.コーヒー

require.config
baseUrl : "/Scripts/"
paths :
    jquery : 'libs/jquery/jquery-2.0.3'
    angular : 'libs/angular/angular'
    'angular-resource' : 'libs/angular/angular-resource'
    bootstrap : 'libs/bootstrap/bootstrap'
shim :
    angular :
        exports :'angular'
    'angular-resource':
        deps :['angular']
    jquery :
        exports: ['jquery']
    bootstrap : 
        deps :['jquery']
    app:
        deps :['app-boot']
require ['app-angular/modules/app','app-angular/modules/app-boot'], ($,angular)->

app-boot.coffee

require ['jquery','angular','bootstrap'], ($,angular)->
$(document).ready ->
    angular.bootstrap document,['app']  

app.coffee

define "app",['angular','angular-resource'], (angular)->    
angular.module 'app',['ngResource']

StudentController.coffee

require ["app"] , (app) ->
app.controller "StudentController" , ($scope) ->
    $scope.msg = "Hello Joy !! How are you !! You are in Angularjs"

そして私のIndex.cshtml

<div class="page-content">
<div ng-controller="StudentController">
    <p ng-bind="{{msg}}">
    </p>
</div>

ただし、エラーが発生しますUncaught Error: No module: app

html からも削除し、ng-appdomready で角度を手動でブートストラップしました。では、どこが間違っているのでしょうか?

4

2 に答える 2

0

このガイドに従っているようです。これは 2 倍のメリットがあります。

動作させることはできましたが、Angular コントローラーで「アプリ」が定義されていなかったため、同じエラー メッセージが表示され続けました。ガイドに記載されているように、「app.controller」がそこに設定されていないようで、「require」ステートメントを介してロードするだけで十分です。

require(['jquery', 'underscore', 'backbone', 'users', 'angular', 'directives', 'app']

これはあなたのものと少しだけ違います。

/* shim */
require.config({
 shim: {
    underscore: {
        exports: '_'
    },
    backbone: {
        deps: ["underscore", "jquery"],
        exports: "Backbone"
    },
    "angular":{
        exports:"angular"
    },
    "directives":{/* this is my custom Angular directive */
        deps:["angular"]
    }
}
});

/* RequireJS module */
define("app", ["angular", "directives"], function(angular)
{
    var app = angular.module("app", ["zipppyModule"]);

    angular.element(document).ready(function()
        { angular.bootstrap(document,['zippyModule']); });
});

/* 'app' loads the module */
require(['jquery', 'underscore', 'backbone', 'users', 'angular', 'directives', 'app']
于 2013-10-03T22:40:47.450 に答える