There are 2 different ways to tackle this:
- still using $scope
- using controllerAs (recommended)
using $scope
class CustomCtrl{
static $inject = ['$scope', '$http', '$templateCache'];
constructor (
private $scope,
private $http,
private $templateCache
){
$scope.search = this.search;
}
private search (search) {
debugger;
var Search = {
AccountId: search.AccountId,
checkActiveOnly: search.checkActiveOnly,
checkParentsOnly: search.checkParentsOnly,
listCustomerType: search.listCustomerType
};
this.$scope.customer = [];
this.$scope.ticket = [];
this.$scope.services = [];
this.$http.put('<%=ResolveUrl("API/Search/PutDoSearch")%>', Search).
success((data, status, headers, config) => {
debugger;
this.$scope.cust_File = data[0].customers;
this.$scope.ticket_file = data[0].tickets;
this.$scope.service_file = data[0].services;
}).
error((data, status) => {
console.log("Request Failed");
});
}
}
Using controllerAs
class CustomCtrl{
public customer;
public ticket;
public services;
public cust_File;
public ticket_file;
public service_file;
static $inject = ['$scope', '$http', '$templateCache'];
constructor (
private $http,
private $templateCache
){}
private search (search) {
debugger;
var Search = {
AccountId: search.AccountId,
checkActiveOnly: search.checkActiveOnly,
checkParentsOnly: search.checkParentsOnly,
listCustomerType: search.listCustomerType
};
this.customer = [];
this.ticket = [];
this.services = [];
this.$http.put('<%=ResolveUrl("API/Search/PutDoSearch")%>', Search).
success((data, status, headers, config) => {
debugger;
this.cust_File = data[0].customers;
this.ticket_file = data[0].tickets;
this.service_file = data[0].services;
}).
error((data, status) => {
console.log("Request Failed");
});
}
}
If you switch from $scope to controllerAs your view would change from:
<div ng-controller="CustomCtrl">
<span>{{customer}}</span>
</div>
to:
<div ng-controller="CustomCtrl as custom">
<span>{{custom.customer}}</span>
</div>
where custom
is a representation of the controller so you are explicitly telling what you are binding to in your markup.
Note
$inject is a way to provide angular with information about what dependencies to inject into your controller at run time even when the code has been minified (strings don't get minified)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…