我正在嘗試使用AngularJS和用VB.NET編寫的Web API(爲我的實習做這個)。AngularJS - Factory not working/activating
我有我的angularApp定義,我的控制器和工廠一樣。 我也在使用Angular的路由,並且這個工作完美。 我正在處理的問題是我的工廠沒有激活或不工作。
請看看下面的代碼:
我AngularApp.js
var angularApp = angular.module('AngularApp', ['ngRoute']);
angularApp.config(['$routeProvider',
function ($routeProvider) {
$routeProvider
.when('/ExpenseOverview', {
controller: 'ExpenseController',
templateUrl: 'Views/ExpenseOverview.aspx'
})
.when('/AddExpense',
{
controller: 'ExpenseController',
templateUrl: 'Views/AddExpense.aspx'
})
.otherwise({ redirectTo: '/ExpenseOverview' });
}]);
我ExpenseController:
angular.module("AngularApp").controller("ExpenseController", ["$scope", "ExpenseFactory", function ($scope, ExpenseFactory) {
//variabelen
$scope.expenses = [];
$scope.id = 0;
$scope.date = "";
$scope.type = "";
$scope.title = "";
$scope.project = "";
$scope.status = "";
$scope.img = "";
var shown = false;
var dataURL = "";
ExpenseFactory.getList($scope);
}]);
到目前爲止,我的控制器沒有做遠遠超過其他通過Web API從數據庫中檢索數據列表。
我ExpenseFactory.js
angular.module("AngularApp").factory("ExpenseFactory", ["$http", function ($http) {
alert("test factory");
var factory = {};
//lijst van expenses ophalen
factory.getList = function ($scope) {
$http.post("/api/Expense/List")
.success(function(data) {
if (data === undefined || data == "") {
data = [];
}
$scope.expenses = data;
$scope.id = $scope.expenses[$scope.expenses.length - 1].Id + 1;
})
.error(function() {
alert("Er is een fout opgetreden");
});
};
factory.saveList = function(expenseList) {
$http.post("/api/Expense/SaveList", { 'expenses': expenseList })
.success(function() {
alert("Expenses have been saved succesfully!");
})
.error(function() {
alert("Something went wrong while saving the expenses");
});
};
return factory;
}]);
正如你所看到的,我已經把警報後的代碼在工廠第一線。這個警報甚至沒有彈出,這意味着工廠沒有啓動/工作。
這段代碼失敗了什麼?
編輯 我將代碼更新爲當前版本,包含所有關於可能干擾代碼的事情的評論。我可以證實,這一切都沒有奏效,所以錯誤發生在別的地方。
另一個說明:我正在使用Visual Studio 2012,如果這可能與它有關,請詳細說明我如何修復這個shenannigans。
是否因爲「expenseFactory」是否區分大小寫。不知道 – Reena
你必須在其他文件中使用'angular.module('AngularApp')'來引用模塊 – mohamedrias
@mohamedrias爲什麼它是必需的,我認爲他已經聲明全局變量.. –