2013-11-20 4 views
1

나는 this 튜토리얼을 거쳤습니다. 지금 나는 통합을 시도하고있다.필요에 따라 각도를 결합하십시오

내가 발견 한 this 설명.

나는 현재 내 app.js는

define(['app/modules/mainApp', 'app/controller/controllers'], function (mainApp) { 
    return mainApp.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider. 
     when('/phones', { 
     templateUrl: 'Templates/phone-list.html', 
     controller: 'PhoneListCtrl' 
     }). 
     when('/phones/:phoneId', { 
     templateUrl: 'Templates/phone-detail.html', 
     controller: 'PhoneDetailCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/phones' 
     }); 
    }]); 
}); 

내 mainApp.js 파일

require(['jquery', 'angular', 'app/routes/app'], function ($, angular, mainRoutes) { 
    //tried this way as well 
    //$(function() { // using jQuery because it will run this even if DOM load already happened 
    // angular.bootstrap(document, ['mainApp']); 
    //}); 
    require(['Scripts/app/modules/mainApp.js'], function (mainApp) { 
     angular.bootstrap(document.body, [mainApp]);//based of orginal answer 
    }) 
}); 

오류의 원인이되는 코드를 오류 여기

Object #<Object> has no method 'unshift' 

입니다 무엇입니까 파일

define(['angular', 'angular-resource'], function (angular) { 
    return angular.module('mainApp', ['ngResource']); 
}); 

다른 내가 보여 didnt는 파일 (컨트롤러, 서비스)가있다하지만 문제는 내가 지금 정의되지 않은 인젝터의 오류를 얻고있다

자신의

UPDATE있다 같아요.

이 항목은 적중을 가져 오는 유일한 중단 점이지만 항목은 정의되지 않습니다. 내가 각 요소에 브레이크 포인트를 넣어 경우 enter image description here

는 UPDATE이 좀 더 지금 this

내 main.js를 닮은 내 프로젝트를 업데이트

require.config({ 
    baseUrl: '/Scripts/', 
    urlArgs: "bust=" + (new Date()).getTime(), 
    paths: { 
    'jquery': 'lib/require-jquery', 
    'angular': 'lib/angular/angular.min', 
    'angular-resource': 'lib/angular/angular-resource.min', 
    }, 
    shim: { 
    'angular': { 'exports': 'angular' }, 
    'angular-resource': { deps: ['angular'] }, 
    'jQuery': { 'exports': 'jQuery' }, 
    }, 
    priority: [ 
    'angular' 
    ] 

}); 

require(['angular', 'app/modules/app', 'app/routes/routes'], function (angular, app, routes) { 
     var $html = angular.element(document.getElementsByTagName('html')[0]); 
     angular.element().ready(function() { //breakpoint here 
      $html.addClass('ng-app'); 
      angular.bootstrap($html, [app.name]); 
     }); 
    }); 

입니다 콘솔에서 테스트 실행

(app == routes) 
true 

은 앱이 경로와 동일해야합니까?

답변

6

부트 스트랩 메서드의 두 번째 인수는 배열이어야하며 아래 코드를 변경했습니다.

require(['jquery', 'angular', 'app/routes/app'], function ($, angular, mainRoutes) { 
    //tried this way as well 
    //$(function() { // using jQuery because it will run this even if DOM load already happened 
    // angular.bootstrap(document, ['mainApp']); 
    //}); 
    require(['Scripts/app/modules/mainApp.js'], function (mainApp) { 
     angular.bootstrap(document.body, [mainApp]); 
    }) 
}); 
+0

고정 된 원본 오류가 발생했지만 이제는 새로운 오류가 발생합니다. –

+0

어떤 파일 오류가 발생했는지 –

+0

스크린 샷으로 업데이트했습니다. –

관련 문제