Hajder離開this comment,並在其中,他說:
如果您使用的路線(大概率)和你的配置有一個參考一個未聲明爲依賴項的模塊中的控制器,則初始化可能會失敗。
比如假設你已經爲你的應用程序配置ngRoute,像
angular.module('yourModule',['ngRoute'])
.config(function($routeProvider, $httpProvider) { ... });
在聲明路由塊小心,
.when('/resourcePath', {
templateUrl: 'resource.html',
controller: 'secondModuleController' //lives in secondModule
});
申報secondModule爲後「ngRoute」應該解決這一問題的相關性。我知道我有這個問題。
即使有了這個幫助,我花了一分鐘的時間纔得到它的工作,所以我想我會在這裏分享我的示例代碼,以幫助下一個可憐的混蛋卡住這個。
首先,在我宣佈我的路線地點:
var app = angular.module('sporkApp', ['ngRoute','validationApp']);
app.config(function ($routeProvider) {
$routeProvider
.when('/home',
{
controller: 'HomeController',
templateUrl: 'home/home.template.html'
})
.when('/tags',
{
controller: 'TagsController',
templateUrl: 'tags/tags.template.html'
})
.when('/test',
{
controller: 'mainController',
templateUrl: 'test/test.template.html'
})
.otherwise({ redirectTo: '/home' });
});
然後,你需要的地方添加控制器代碼,在那裏將被裝載在你的shell頁:
// create angular app
var validationApp = angular.module('validationApp', []);
// create angular controller
validationApp.controller('mainController', function($scope) {
// function to submit the form after all validation has occurred
$scope.submitForm = function() {
// check to make sure the form is completely valid
if ($scope.userForm.$valid) {
alert('our form is amazing');
}
};
});
最後,您需要將相應的ng-app
和ng-controller
添加到包裝您要驗證的控件的某個頁面元素。我把下面的div標籤放在裏面:
<div ng-app="validationApp" ng-controller="mainController">