我遇到了如何将数组中的变量放入查询字符串的问题。过滤功能很好,但搜索功能不起作用。变量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
}
}
})();
答案 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。