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