Vielleicht kann mir jemand mit einem kleinen Problem helfen. Ich bin ziemlich neu auf dem Gebiet der Webprogrammierung, aber ich habe Programmiererfahrung. Ich möchte eine kleine Website entwickeln, die angularjs und ui-grid verwendet. Leider funktioniert die Filterung nicht von externen Eingabefeldern.Angularjs ui-grid Filter vom Texteingabefeld
Könnte mir bitte jemand sagen, wo mein Programmierfehler ist? http://plnkr.co/edit/fiA666OzpBqpTrCiuXER?p=preview
var myDummyData = [{name: "Moroni", age: 50},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34}];
var myDummyData2 = [{name: "aTest", age: 50},
{name: "bTest1", age: 43},
{name: "cTest2", age: 27},
{name: "dTest3", age: 29},
{name: "eTest4", age: 34}];
$scope.filterOptions = {
filterText: ''
};
$scope.gridOpts = {
data: myDummyData,
enableFiltering: true,
columnDefs: [
{name: 'Name', field: 'name', enableFiltering: true
, filter: {
term: $scope.filterOptions.filterText //DOES NOT WORK... BUT WHY
}
},
{name: 'Price', field: 'age'}
]
};
$scope.updateData = function(newValue){
//console.log($scope.gridOpts.data);
console.log($scope.gridOpts.columnDefs[0].filter);
$scope.gridOpts.columnDefs[0].filter = {term: newValue};
console.log("Scope nameid set " + $scope.gridOpts.columnDefs[0].filter.term); //is set but no update
//$scope.$apply(); //not possible gives error! WHY??
//$scope.gridOpts.data = myDummyData; //for testing works
};
$scope.swapData = function() {
if ($scope.gridOpts.data === myDummyData) {
$scope.gridOpts.data = myDummyData2;
}
else {
$scope.gridOpts.data = myDummyData;
}
};
//DOES NOT WORK BUT WHY
// $scope.$watch('filterOptions.filterText', function (newValue, oldValue) {
// if ($scope.filterOptions.filterText) {
// $scope.filteringText = newValue;
// $scope.updateData(newValue);
// }
// });
Die Idee ist, eine Navigationsleiste zu haben, die ein Suchfeld enthält:
Der Code kann hier gefunden werden. Später möchte ich abhängig von Rangsidern auf weitere Spalten filtern. In meinem Beispiel funktioniert jedoch nicht einmal die Standard-String-Filterung.
Fragen:
- Könnte mir jemand sagen, wo mein aktuelles Problem ist? Genauer gesagt: Warum funktioniert die Filterung von externen Eingabefeldern nicht?
- Die andere Frage ist, wie binde ich min und max Werte von Bereich Schieberegler zu z. die Alterspalte in meinem Beispiel? (Direkt an das Bindungsproblem in Frage bezogen (1))
ich nach Antworten umsah, aber entweder das ist direkt ein Problem der Bindung, die ich nicht verstehen kann, ist eine bloße Programmierung js Problem oder eine ngGrid Update zu UI-Grid-Problem.
Vielen Dank im Voraus
Ich fand, dass dies offenbar ein UI-Grid-Problem ist. Oder meine Interpretation davon. – cojack20