1
使用AngularJS和SmartTable ...... 我有當過濾器表內應用的正常工作持久狀態。 我加入其搜索的所有列的自定義搜索欄。 這也適用。 然而這種應用過濾器沒有被我的持久狀態指令舉行。 我相信它的一個範圍內的問題,但似乎無法行中的兩個,以滿足。AngularJS SmartTable持久狀態不與自定義搜索舉行(範圍問題?)
這裏是一個Plunker http://plnkr.co/edit/2qt7f6NxKH2blJ5GudNl?p=preview
是我寫的範圍不正確?
這裏是我的自定義搜索指令
// Text Search for all columns in stTable
// USAGE: <input type="text" ng-model="queryAllColumns"/>
// There HAS TO BE a way to implement this into the stPersist
.directive('searchWatchModel',function(){
return {
require:'^stTable',
scope:{
searchWatchModel:'='
},
link:function(scope, ele, attr, ctrl){
var table=ctrl;
scope.$watch('searchWatchModel',function(val){
ctrl.search(val);
});
}
};
})
這裏是我的持久表格指令
// Create a Persistant Table Display
// Allows you to close the browser and return with filters still applied
// USAGE: on the st-able ADD: st-persist="myTable" <--myTable can be anything
.directive('stPersist', function() {
return {
require: '^stTable',
link: function (scope, element, attr, ctrl) {
var nameSpace = attr.stPersist;
//save the table state every time it changes
scope.$watch(function() {
return ctrl.tableState();
}, function (newValue, oldValue) {
if (newValue !== oldValue) {
localStorage.setItem(nameSpace, JSON.stringify(newValue));
}
}, true);
//fetch the table state when the directive is loaded
if (localStorage.getItem(nameSpace)) {
var savedState = JSON.parse(localStorage.getItem(nameSpace));
var tableState = ctrl.tableState();
angular.extend(tableState, savedState);
ctrl.pipe();
}
}
};
})
這只是一個原型「確保基礎工作第一」。 Global不會很好地搜索日期。我相對較新的角度...任何關於stPersist上的油門/延遲研究的建議? ...我不確定我會怎麼寫?你是指輸入提前搜索......只要我鍵入「一個......」它緩存到本地存儲? ...我在400ms的st搜索中看到了一個內置延遲......這就是你指的是什麼? – Acts7Seven