我正在使用 AngularJS 和实体框架在 ASP .NET 样板框架上做一个应用程序。
很长时间以来,我一直在学习本教程(http://www.codeproject.com/Articles/791740/Using-AngularJs-ASP-NET-MVC-Web-API-and-EntityFram#ArticleBuildWebApiServices)
当它通过 WebApiModule 注册控制器时,它没有显示启动的迹象(我在控制器构造函数上放置了一个断点,它没有响应)。我的目标是让所有产品都带有角度控制器。
这是我的 WebApiModule 代码:
{
[DependsOn(typeof(AbpWebApiModule))]
public class ShopWebApiModule : AbpModule
{
public override void Initialize()
{
IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());
DynamicApiControllerBuilder
.ForAll<IApplicationService>(Assembly.GetAssembly(typeof(ShopApplicationModule)), "shopsystem")
.Build();
}
}
}
这是我的 IProductAppServiceCode:
{
public interface IProductAppService:IApplicationService
{
GetProductsOutput GetProducts(GetProductsInput input);
//void UpdateProduct(UpdateProductInput input);
//void CreateProduct(CreateProductInput input);
}
}
这是我的 ProductAppServiceCode:
{
public class ProductAppService : ApplicationService, IProductAppService
{
private readonly IProductRepository _productRepository;
public ProductAppService(IProductRepository productRepository)
{
_productRepository = productRepository;
}
public GetProductsOutput GetProducts(GetProductsInput input)
{
var products = _productRepository.GetKind(input.BookKind);
return new GetProductsOutput
{
Products = Mapper.Map<List<ProductDto>>(products)
};
}
}
}
这是我的 Angular 控制器代码:
(function () {
var app = angular.module('app');
var controllerId = 'shop.views.product.list';
app.controller(controllerId, [
'$scope', 'abp.services.shopsystem.product',
function ($scope, productService) {
var vm = this;
vm.products = [];
$scope.productType = 0;
vm.refreshProducts();
$scope.$watch('selectedProductType', function (value) {
vm.refreshTasks();
});
vm.refreshProducts = function () {
abp.ui.setBusy( //Set whole page busy until getTasks complete
null,
productService.getProducts({ //Call application service method directly from javascript
}).success(function (data) {
vm.tasks = data.tasks;
})
);
};
}
]);
})();
我只是这个框架的初学者,如果你能帮助我,我会很高兴。
如果我应该给你带来更多的信息,请说出来。