如何在Angular中将变量放入查询中

时间:2017-04-10 07:16:38

标签: javascript angularjs

我遇到了如何将数组中的变量放入查询字符串的问题。过滤功能很好,但搜索功能不起作用。变量id从所选用户中获取id,但下一个vm.search不执行任何操作。我对Angular和JS也很陌生,所以也许我错过了一些非常简单的东西。我的代码如下所示:

(function () {
'use strict';

angular
    .module('app.pil')
    .controller('userListController', ctrl);

ctrl.$inject = ['$rootScope', 'users', 'pilService', 'notificator'];

function ctrl($rootScope, users, pilService, notificator) {

    var vm = this;

    vm.filter = function () {
     vm.users = users;
        vm.users = pilService.filter.query(vm.data);
    };

    vm.search = function () {
        var id = vm.users[0].id;
         vm.search= pilService.search.query(id);
    }

}

})();

感谢您的任何想法!

pilService代码:

(function () {
  'use strict';

  angular.module('app.pil').factory('pilService', service);

  service.$inject = ['CONFIG', '$resource'];
  function service(CONFIG, $resource) {

    var users = $resource(CONFIG.API_END_POINT_URL + '/pil/api/pilot/clients', {}, {
      query: {isArray: true},
      update: {method: 'GET'}
    });

    var filter = $resource(CONFIG.API_END_POINT_URL + '/pil/api/pilot/clients/filter', {}, {
        query: {isArray: true},
        update: {method: 'GET'}
    });

    var search = $resource(CONFIG.API_END_POINT_URL + '/pil/api/pilot/clients/search', {}, {
      query: {isArray: true},
      update: {method: 'GET'}
    });

    return {users: users,
            filter:filter,
            search:search
    }
  }
})();

2 个答案:

答案 0 :(得分:0)

您的函数名称function uploadFile(btn) { if (btn.files.length != 0) { var test = document.getElementById("<%=btnUpload.ClientID%>"); test.disabled = false; $(".aspNetDisabled").addClass('enabled'); } else { var txt = document.getElementById("<%=btnUpload.ClientID%>"); txt.disabled = true; $(".aspNetDisabled").removeClass('enabled'); } } vm.search = function ()名称ng-model都相同。可能是角度变得混乱做绑定动作。

  

请单独定义名称,然后让我知道它的工作与否。

答案 1 :(得分:0)

所以我以最好的方式解决了我的问题,但它确实有效。似乎问题是,id被设置为String而不是数组。我将代码更改为:

vm.search = function (user) { vm.id = gpilotService.search.query(user); }

这样,FE将整个用户对象的所有数组作为params发送,并且BE只获取ID。