我有控制器,它获取一些数据并根据信息添加一些额外的项目。信息应该是可搜索的。我现在有工作代码,但想知道重用代码的最佳方法是什么?是指令吗?工厂?这是代码:
app.controller('searchProducts', function($scope, $http) {
$scope.search = function(val) {
$scope.val = val;
//from here
let query;
if(!$scope.val) {
query = BASE_URL+"Products";
}
if($scope.val) {
query = encodeURI("Products?$filter=contains(ProductName,\'"+val+"\')");
query = BASE_URL+query;
}
$http.get(query)
.then(function(response) {
$scope.rawData = response.data;
angular.forEach($scope.rawData.value, function(value) {
//looping the data, replacing the IDs with actual data from the source
//Getting actual Supplier using SupplierID
$http.get("http://services.odata.org/V4/Northwind/Northwind.svc/Suppliers("+value.SupplierID+")/CompanyName/$value")
.then(function(response) {
value.Supplier = response.data;
})
//Getting actual Category using CategoryID
$http.get("http://services.odata.org/V4/Northwind/Northwind.svc/Categories("+value.CategoryID+")/CategoryName/$value")
.then(function(response) {
value.Category = response.data;
})
});
})
//to here
}
//is repeated here
});