Dada esta matriz, quiero que cuando haga clic en una demostración me lleve a un enlace si hago clic en otra demostración me llevará a otro enlace:
angular.module('app', []) .controller('MainCtrl', function($scope) { $scope.link = function(){ var demo = $scope.demos.filter(d => d.paragrafo === 'request') if(demo){ $scope.link = 'https://www.google.it' }else{ alert('Hello') } } $scope.demos = [ { paragrafo: 'request', title:'demo1', paragrafo2:'dskjdfdjfdfjkdf', id: 1 }, { paragrafo: 'params', title:'demo2', paragrafo2:'dfhfhfjgfkjghfjkgf', id: 2 }, { paragrafo: 'request', title:'demo3', paragrafo2:'sjdsdjddfjdf', id: 3 }, { paragrafo: 'params', title:'demo4', paragrafo2:'sdjkdhdkjfhdjfh', id: 4 }, ]; })Traté de hacer si la condición pero no sé cómo hacerlo
este es mi componente, donde puse mi enlace:
.directive('card', function(){ var TPL = `<div class="card" style="width: 18rem"> <div class="card-body"> <p>{{c.paragrafo}}</p> <h4 class="card-title">{{c.title}}</h4> <h6 class="card-subtitle mb-2 text-muted">{{c.paragrafo2}}</h6> <p class="card-text"></p> <a href ng-click="c.link()" class="card-link">something</a> </div> </div>` var directive = { restrict: 'E', template: TPL, scope: { paragrafo: '@', title: '@', paragrafo2: '@', link: '&' }, controller: ctrlFn, controllerAs: 'c', bindToController: true };ahora tengo una alerta, pero me gustaría generar un enlace diferente para cada demo
el método de filtro Array devuelve una matriz. Simplemente configure la propiedad de enlace en cada elemento de matriz filtrado:
$scope.link = function(){ var filteredDemos = $scope.demos.filter(d => d.paragrafo === 'request') for(var i=0; i<filteredDemos.length; i++) { filteredDemos.link = 'https://www.google.it'; } }