Çok basit bir görev olmalı. Belirli bir parametrenin açısal temelli açılır menüsünü sıralamak istiyorum. Kolay olmalı.AngularJS değişkenine göre filtrelenme listesi
iadesinin bazı veriler şöyle bir DataService çağrısı yapmak:
"success" : true,
"data" : {
"this_status" : [{
"DefNo" : "111*A",
"Com" : "111",
}, {
"DefNo" : "222*B",
"Com" : "222",
}, {
"DefNo" : "333*C",
"Com" : "333",
}
];
"this_info" : [{
"Req" : "MUST",
"DefCom" : "111",
}, {
"Req" : "NoMUST",
"DefCom" : "222"
}, {
"Req" : "MUST",
"DefCom" : "333"
}]}
Benim görevim de ilişkili bir zorunluluk değere sahip tüm Defcom değerlere sahip bir liste yapmaktır. Bir açılır listenin içinde "ZORUNLU" olan "Req" olan "DefCom" sayılarını listelemem gerekiyor.
angular.module('MyAPI.services', [])
.factory('MyAPIservice', function($http) {
var MyAPI = {};
MyAPI.getDefCom = function() {
return $http({
method: 'GET',
url: '/thisis/mylink/'
});
};
return invoiceheaderAPI;
});
bu benim için çalışır: my örnekte, benim açılır Degerler 111 ve benim denetleyicisi olarak
333. olurdu Yani, görüşme bu fabrika var
$scope.getDefCom = function(){
MyAPIservice.getDefCom().success(function(response){
$scope.info = response.data.this_info;
$scope.infoList = $scope.info;
});
}
yürütmek İlk girişim, DefCom numaralarını listeleyecek bir açılır yapın. Ancak, daha sonra onları filtrelemeliyim. Bu örnekte
$scope.require = MUST
.
<option ng-repeat="option in DefComList" value="{{option.DefCom}}">{{option.DefCom}} </option>
ben şöyle bir filtre yapıyor çalıştı: şablonumun İçinde
Sana içine $ kapsamı değişkeni ekleyebilirsiniz şey bulamadı Ancak daha okunmasının ardından
ng-repeat="option in DefComList | filter: {Req: $scope.require}"
filtre. Önerilerin çoğu kendi filtrenizi yazmaya yöneldi. Bunu angular.forEach kullanarak yaptım. Benim filtresi aşağıdaki gibidir:
$scope.filterDefs = function($scope) {
var clrreturn = false;
angular.forEach($scope.info, function(value, key) {
if (value.DefCom == $scope.require)
clrreturn = true;
});
return clrreturn;
};
Ancak, benim özel filtre $ sonuçlarını almadan önce çalıştığı $ scope.getDefCom işlevinden scope.info. $ Scope.info hazır olmadan önce
Error: undefined is not an object (evaluating '$scope.info')
atıyor. Bunun sözlerle ilgisi olduğunu biliyorum, bu yüzden ertelenmiş sözlerle yazmayı denedim. Ancak, bu da işe yaramadı ve ben sinirli oldum çünkü bu çok basit bir görev olmalı ve kendim için olması gerekenden çok daha zor olabilir.
Teşekkür ederiz! Bu mükemmel çalışıyor. Kesinlikle gözden geçiriyordum, bu özel bir filtre yazmaktan daha kolay. – jenryb
Sorun değil, yardımcı olmaktan mutluluk duyuyoruz! – anierzad
'ng-options' ile bunu aynı şekilde yapabilirsiniz [jsfiddle] (https://jsfiddle.net/awolf2904/0e5wfes3/). – AWolf