AngularJS过滤器带有应用按钮,没有自动完成功能

时间:2015-03-11 11:17:42

标签: javascript angularjs autocomplete pug

我需要一个带" Apply"按钮,没有自动完成功能。我不能这样做。这是我的基本代码,自动完成(我不想要它)和没有按钮(我想要这个)。

我正在使用Jade。

search.jade

input(type="text", ng-model="buscador.id", placeholder="Ejemplo: 111")

listmagazines.jade

.col-xlg-25.col-sm-3.col-xs-3.col-xxs-6(ng-repeat="magazine in magazines|filter:buscador")

app.js它有很多项目,我只会放三个。

var app = angular.module("appBuscador", []);

app.factory("revistas", function(){
  return{
    "revistasNumeros":[
    {
      id: 97,
      titulo: "Nº97",
      img: "pdf97.jpg",
      descarga: "",
      url: "http://www.mapfre.com/fundacion/html/revistas/gerencia/n097/index.html"
    },
    {
      id: 98,
      titulo: "Nº98",
      img: "pdf98.jpg",
      descarga: "",
      url: "http://www.mapfre.com/fundacion/html/revistas/gerencia/n098/index.html"
    },
    {
      id: 99,
      titulo: "Nº99",
      img: "pdfdefault.jpg",
      descarga: "",
      url: "http://www.mapfre.com/fundacion/html/revistas/gerencia/n099/index.html"
    }
    ]
  }
})

controller.js

app.controller("revistasController", function($scope,revistas){
  $scope.magazines = revistas.revistasNumeros;
})

谢谢。

---------------------抱歉,我可以添加一个答案

我找到了解决方案:

search.jade(添加按钮)

input(type="text", ng-model="buscador.id", placeholder="Ejemplo: 111")
a.btn.btn-buscador(href="#", ng-click="applySearchFilter()") Buscar

listmagazines.jade(退出过滤器:并添加ng-hide)

.col-xlg-25.col-sm-3.col-xs-3.col-xxs-6(ng-repeat="magazine in magazines", ng-hide="magazine.excludedByFilter")

controller.js(将此添加到您的app.controller并更改属性)

app.controller("revistasController", function($scope,revistas){
  $scope.magazines = revistas.revistasNumeros;

  $scope.applySearchFilter = function() {
    var idFilter = $scope.buscador.id;
    console.log(idFilter);
    var showAll = 0 === idFilter.length;

    angular.forEach($scope.magazines, function(magazine) {
      var id = magazine.id.toString();

      if (showAll) {
        magazine.excludedByFilter = false;
      } else {
        magazine.excludedByFilter = (id.indexOf(idFilter) === -1) 
        || (id.indexOf(idFilter) === -1);
      }
    });
  }
})

有效!! :)

0 个答案:

没有答案