Hi All,
i am new in angularjs. i have same problem call controller function inside
ng-repeat.
views
<div class="application-category-list col-md-9">
<ul>
<li ng-repeat-start="version in ctrl.applicationVersion | orderBy: 'id'"
ng-repeat-end ng-init="ctrl.getApplicationByVersion(version.id)">
<div class="row">
<div class="application-category">
<h4>{{version.name}}</h4>
</div>
</div>
<div class="row">
<ul class="application-card-list">
<li class="col-xs-12 col-sm-3 col-md-2" ng-repeat-start="application in
ctrl.applicationByVersion" ng-repeat-end>
<div class="application-card-box">
<div class="application-card-image">
<a href=""><img src="assets/img/application/apps_1.png" alt=""></a>
</div>
<div class="application-card-body">
<a href=""><p class="application-card-title">{{application.name}}</p></a>
<p class="application-card-subtitle">{{application.version.name}}</p>
<p class="application-card-version">{{application.number}}</p>
</div>
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
controller
app.controller('ApplicationController', ['$scope', 'config',
'ApplicationService', function ($scope, config, ApplicationService) {
var vm = this;
var countApplicationByVersion = 6;
var countApplicationTopUsing = 5;
vm.title = 'App Center';
vm.applicationTopUsingtitle = 'Top Using Apps';
vm.assetsUrl = config.assetsUrl;
vm.pathApplication = config.pathApplication;
vm.pathApplicationVersion = config.pathApplicationVersion;
vm.applicationVersion = [];
vm.applicationByVersion = [];
vm.applicationTopUsing = [];
vm.getApplicationVersion = function () {
ApplicationService.getApplicationVersion()
.then(
function (applicationVersion) {
vm.applicationVersion = applicationVersion;
},
function (data) {
console.log(data)
}
);
}
vm.getApplicationByVersion = function (id) {
if(id != null){
ApplicationService.getApplicationByVersion(id, countApplicationByVersion)
.then(
function (applicationByVersion) {
vm.applicationByVersion = applicationByVersion;
console.log(vm.applicationByVersion);
console.log(applicationByVersion.length);
},
function (data) {
console.log(data)
}
);
}
}
vm.getApplicationTopUsing = function () {
ApplicationService.getApplicationTopUsing(countApplicationTopUsing)
.then(
function (applicationTopUsing) {
vm.applicationTopUsing = applicationTopUsing;
},
function (data) {
console.log(data);
}
);
};
vm.getApplicationVersion();
vm.getApplicationByVersion();
vm.getApplicationTopUsing();
}]);
service
app.service('ApplicationService', ['$http', '$q', 'config', function
($http, $q, config) {
var factory = {
applicationVersion: [],
applicationByVersion: [],
applicationTopUsing: [],
getApplicationVersion: getApplicationVersion,
getApplicationByVersion: getApplicationByVersion,
getApplicationTopUsing: getApplicationTopUsing
};
function getApplicationVersion() {
var defer = $q.defer();
var data = {
page: 0,
size: 0
};
var cfg = {
params: data,
header: {
'enctype': 'multipart/form-data',
'accept': 'application/json'
}
};
$http.get(config.apiUrl + 'version', cfg)
.then(
function (response) {
//success callback
if(response.status == 200) {
factory.applicationVersion = response.data.data.versions;
defer.resolve(response.data.data.versions);
}
},
function (response) {
//failure callback
defer.reject('Failed to get data');
}
);
return defer.promise;
}
function getApplicationByVersion(versionId, size) {
var defer = $q.defer();
var data = {
page: 0,
size: size
};
var cfg = {
params: data,
header: {
'enctype': 'multipart/form-data',
'accept': 'application/json'
}
};
$http.get(config.apiUrl + 'application/version/' + versionId, cfg)
.then(
function (response) {
//success callback
if(response.status == 200) {
factory.applicationByVersion = response.data.data.applications;
defer.resolve(response.data.data.applications);
}
},
function (response) {
//failure callback
defer.reject('Failed to get data');
}
);
return defer.promise;
}
function getApplicationTopUsing(size) {
var defer = $q.defer();
var data = {
page: 0,
size: size
};
var cfg = {
params: data,
header: {
'enctype': 'multipart/form-data',
'accept': 'application/json'
}
};
$http.get(config.apiUrl + 'application/top/using', cfg)
.then(
function (response) {
//success callback
if(response.status == 200) {
factory.applicationTopUsing = response.data.data.applications;
defer.resolve(response.data.data.applications);
}
},
function (response) {
//failure callback
defer.reject('Failed to get data');
}
);
return defer.promise;
};
return factory;
}]);
output
<
Loading Image...
>
my problem is why controller return same value for variable "
applicationByVersion" ?
Thank you before
Post by Sander EliasHi Bala,
There is a lot of code shared in this thread already. What is so specific
to your case that this did not provide a solution?
Regards
Sander
--
You received this message because you are subscribed to the Google Groups "AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angular+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.