2013-11-20 94 views
1

我经历了this教程。现在我试图纳入要求结合角度与要求

我找到this的解释。

我目前得到一个错误

Object #<Object> has no method 'unshift' 

这是导致错误的代码

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 
    }) 
}); 

我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文件

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

还有其他的文件,我没有显示(控制器,服务),但我不认为问题的关键在于他们的

UPDATE

我现在越来越不确定注射器的错误。

这是被击中的唯一断点,但该项目不是未定义的。 enter image description here

更新2

我更新了我的项目,现在越来越像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

我更新了屏幕截图 –