2017-05-14 4 views
0

私はinputのユーザーが編集するフィールドがありません。ユーザーが値を編集するときに私はre-wrapにしようとしています。私はコントローラの値を並べ替えると思います。そのために私が行いますAnguarjs - `orderBy`はコントローラーで期待どおりに動作しません

gridView.resort = function(){ 
     var start = new Date(); 
     gridView.gridData = $filter('orderBy')(slice, "mk", true); 
    } 

私はこのようになっていますフィルタ慰めるとき:

119 
gridData.js:22 879 
gridData.js:22 470 
gridData.js:22 420 
gridData.js:22 392 
gridData.js:22 347 
gridData.js:22 293 
gridData.js:22 234 
gridData.js:22 170 
gridData.js:22 120 

しかし、これは私のために動作していませんが。数値の小さいフィールドの値を変更すると、最初の行に表示され、行全体がソートされません。どんな助け?ページのロードSORTBY上

私の作品:

apiService.generateData().then(function(data){ 

     var start = new Date(); 

     gridView.gridData = slice = $filter('orderBy')(data.splice(0, 10), "mk"); 


    }); 

Live Demo (いくつかの低値を入力し、アウトを置く参照)

+1

「動作しません」と定義します。入力とは何か、期待される出力は何か、そして実際の出力は何ですか?私たちはどのスライス、 "mk"、gridDataなどが何であるか分かりません。また、テンプレートの表示内容もわかりません。 gridDataまたはslice? –

+0

私は同意します。私はここで問題を見つける。ページが読み込まれるときにすべての値が数字として表示されるので、適切な並べ替えが行われます。ユーザーがモデルを修正したときに、 'string'が適切なソートの対象にならないためです。このシナリオをどのように扱うか。 'live'デモを更新しようとしましょう – 3gwebtrain

+0

ここにデモがあります:http://plnkr.co/edit/WwqcEb8vxTjYgEkHFsQH?p=preview穴のリストを再追加しないで、低い値を入力してください – 3gwebtrain

答えて

1

@JB Nizetによってコメントとして、あなたはnumberを使用しての代わりに、検討すべきですtext

ng-changeイベントでparseIntを呼び出しているtextに対処するための一つの方法はまだですが、あなたが入力している多数の他のいくつかのものは(あなたが入力することができるものcontrollしなければならないことを意味)する場合、これはエラーをスローすることをrememer 。

exampleを参照してください。

関連する問題