我想通过声明我对发展非常陌生来提出这个问题,所以请提前道歉。
基本上,我已经将我的网站部署到了Azure-在LocalHost上运行得很好,部署了除角度和图像之外的所有工作。
对于我的图片:
无法加载资源:服务器响应状态为404(未找到)windmillcontractors.azurewebsites.net/images/windmillFreshCut64.png
我的路径不正确,但我不确定我缺少什么来纠正它。我还想注意我的favicon没有显示,我认为这与windmillFreshCut64.png在同一文件夹中的原因相同。
对于Angular:
我收到错误导致我相信实例化,Angular无法找到依赖项。这是:
未捕捉错误:[$ injector:modulerr] http://errors.angularjs.org/1.2.16/ $ injector / modulerr?p0 = registrationModule ... angularjs.org%2F1.2.16%2F%24injector%2Funpr%3Fp0%3Dn%0A%20%20% 20%20at%20Er ...... 1)angular?v = Yj0JoRijZo-WbXksXxT7R8FZxhv6PQ59Vkm83GDIbm41:1
Angular Error Documentation和More Documentation
这是我的注册模块:
var registrationModule = angular.module('registrationModule', ['ngRoute', 'ngResource'])
.config(function ($routeProvider) {
$routeProvider.when('/Estimates', { templateUrl: 'Scripts/templates/estimates.html', controller: 'EstimatesCtrl' })
.otherwise('/');
//.when('/Portal/Customers', { templateUrl: 'templates/customers.html', controller: 'CustomersCtrl' })
//$locationProvider.html5mode(true);
});
registrationModule.controller('EstimatesCtrl', function ($scope, $http, $rootScope) {
$http.get("Portal/Estimates").success(function(data){ $scope.estimates = data}).error(function(data){console.log(data)});
$scope.viewEstimate = function (estimate) {
$rootScope.estimate = estimate;
};
$scope.currentPage = 0;
$scope.pageSize = 20;
$scope.data = $http.get("Portal/Estimates").success(function (data) { $scope.estimates = data }).error(function (data) { console.log(data) });
//$scope.estimateArray = jQuery.makeArray($scope.data);
//$scope.dataArray = Array.prototype.slice.call($scope.data);
//$scope.newArray = [];
//for (var key in $scope.data) {
// $scope.newArray.push(key);
//};
//alert(jQuery.makeArray($scope.data));
//Object.keys($scope.data)
$scope.numberOfPages = Math.ceil($scope.data.length / $scope.pageSize);//not working
$scope.resetFilter = function () {
$route.reload();
}
});
registrationModule.filter('isoToMS', function () {
return function (input) {
var dateAsFromServerSide = input;
var parsedDate = new Date(parseInt(dateAsFromServerSide.substring(6)));
var jsDate = new Date(parsedDate); //Date object
return jsDate;
};
});
registrationModule.filter('startFrom', function () {
return function (input, start) {
start = +start; //parse to int
return input.slice(start);
}
});
这是我的捆绑配置:
bundles.Add(new ScriptBundle("~/bundles/angular").Include(
"~/Scripts/angular.js",
"~/Scripts/angular-resource.js",
"~/Scripts/angular-route.js",
"~/Scripts/Registration-Module/registration-module.js"
));
由于
答案 0 :(得分:3)
因为你已经捆绑了javascript并且它正在缩小你的脚本,所以服务名称将被破坏,你需要在声明你的控制器时使用以下模式
registrationModule.controller('EstimatesCtrl', ['$scope', '$http', '$rootscope', function ($scope, $http, $rootScope) {
$http.get("Portal/Estimates")
.success(function(data){
$scope.estimates = data
})
.error(function(data){console.log(data)});
$scope.viewEstimate = function (estimate) {
$rootScope.estimate = estimate;
};
}]);
这将允许angular通过适当的字符串名称注入依赖项,这些名称将在最小化期间保留。
答案 1 :(得分:1)
您的角度误差是因为您没有正确设置控制器以进行缩小。
registrationModule.controller('EstimatesCtrl',[ // notice the array brackets
'$scope', '$http', '$rootScope', // annotated with injected dependencies
function ($scope, $http, $rootScope) {
// etc.
}
] // be sure to close the array
);
当你缩小角度时,不知道要注射什么。这是你的控制器在缩小时所处的位置:
registrationModule.controller("EstimatesCtrl", function(n, t, i) {
t.get("Portal/Estimates").success(function(t) {
n.estimates = t
}).error(function(n) {
console.log(n)
});
n.viewEstimate = function(n) {
i.estimate = n
};
n.currentPage = 0;
n.pageSize = 20;
n.data = t.get("Portal/Estimates").success(function(t) {
n.estimates = t
}).error(function(n) {
console.log(n)
});
n.numberOfPages = Math.ceil(n.data.length / n.pageSize);
n.resetFilter = function() {
$route.reload()
}
});
AngularJS决定注入函数的方式是通过获取函数并调用toString()
,然后解析出参数的名称。它在这里失败了,因为您没有名为n
,t
或i
的服务。
通过使用注入注释的依赖项数组调用它,它将成为:
registrationModule.controller("EstimatesCtrl", ['$scope', '$http', '$rootScope', function(n, t, i) {
// etc
}]);
现在,n == $scope
,t == $http
和$rootScope == i
。由于缩小代码并不会破坏字符串,因此AngularJS知道注册服务需要注入的内容。
编辑:我忘了提..这需要在有依赖注入的任何地方进行。查看dependency injection documentation了解详情。