'use strict';
var app = angular.module('myApp', []);
app.controller('AppCtrl', function($scope){
$scope.mail_notifications = [
{
"key": "all",
"value": "For any event on all my projects"
},
{
"key": "selected",
"value": "For any event on the selected projects only..."
},
{
"key": "only_my_events",
"value": ""
},
{
"key": "only_assigned",
"value": "Only for things I am assigned to"
},
{
"key": "only_owner",
"value": ""
},
{
"key": "none",
"value": "No events"
}
];
$scope.mail_notification = 'all';
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="AppCtrl">
<select ng-model="mail_notification" ng-options="c.key as c.value for c in mail_notifications"></select>
</div>
</div>
Tengo un enlace de Fiddle debajo como referencia.
https://jsfiddle.net/maayuresh/mjugfLr0/1/
En Fiddle anterior, tengo un objeto json llamado mail_notifications. En esto, algunas propiedades están vacías, nulas como esta -> ""
Estos valores nulos se muestran en la lista desplegable de selección.
Mi objetivo es eliminar eso del menú desplegable de selección. ¿Cómo puedo lograrlo?
para tu información,
Estos valores nulos se muestran en la lista desplegable de selección.
null no es equivalente a "" (cadena vacía)
Para filtrar el elemento con value no es una cadena vacía:
$scope.mail_notifications = $scope.mail_notifications.filter(x => x["value"] != "");
También puede trabajar filtrando el elemento con valor es un valor real como se muestra a continuación:
$scope.mail_notifications = $scope.mail_notifications.filter(x => x["value"]);