0
我有一个典型的带查询编辑器和搜索按钮,即我的Angularjs应用程序。但是,单击搜索按钮不起作用。如果我最初使用表格打开表格,则该服务有效。但是当点击搜索按钮时不行。代码如下:Angularjs,搜索表单,工厂:按钮不起作用
HTML vlist.html:
<input ng-model="nachname" type="text" id="nachname" name="nachname" class="search-query" />
<button ng-click="search()" type="submit" class="btn btn-primary">Search</button>
...
<tr ng-repeat="pers in personen">
<td>{{pers.nachname}}</td>
</tr>
...
控制器:
var app = angular.module('cdemoApp', [ 'cdemo.services' ]);
app.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/vlist', {
controller: 'VListCtrl',
resolve: {
personlistdto: function(VListLoader) {
return VListLoader();
}
},
templateUrl : 'app/view/vlist.html'
}).otherwise({ redirectTo: '/' });
} ]);
app.controller('VListCtrl', [ '$scope', 'personlistdto',
function($scope, personlistdto ) {
$scope.search = function(){
$scope.personen = personlistdto.aaData;
$scope.iTotalRecords = personlistdto.iTotalRecords;
};
$scope.search();
}]);
服务:
var services = angular.module('cdemo.services', [ 'ngResource' ]);
services.factory('Vers', [ '$resource',
function find($resource) {
return $resource('/cdemo/rest/vers/ajs/:id',
{ id: '@id', isArray: false }
);
} ]);
services.factory('VListLoader', [ 'Vers', '$q',
function(Vers, $q) {
console.log('Vloader1');
var find = function find() {
var delay = $q.defer();
Vers.get(function(personlistdto) {
delay.resolve(personlistdto);
}, function() {
delay.reject('Nix fetch');
});
return delay.promise;
};
return find;
} ]);
任何想法,我怎么能得到的搜索按钮(包括字段/参数) - 因为单击按钮时没有任何反应?谢谢你的回答。
'
点击处理程序应该在VListCtrl中,并用搜索字段调用VListLoader - 但我不知道该怎么做。 –
我只是猜测你想要一个名字在你的列表中的搜索字段。如果是这样,该按钮不是必需的,你可以很容易地过滤你的内容。 [这是一个plunk](http://plunker.co/edit/ObiTzrBxa58gCEfOLpHr?p=preview),演示了基本的过滤器。这不回答“按钮不起作用”,但它可能会给出预期的结果。 – rGil