2016-09-04 44 views
2

我有一個函數可以在幾個ViewModel中使用。這是一個過濾功能,我用作自定義過濾器的參數:在aurelia中組織全局函數

<tr repeat.for="server of servers | filter:searchTerm:filterFunc"> 

什麼是「aurelic」的方式來存儲這樣的功能?我對js和aurelia都很陌生,所以一個容易理解的「非縮小」的例子會讓我感激不盡:-)

編輯:作爲參考,我將函數粘貼在我的ValueConverter類中因爲它只能與它一起使用。

export class filterValueConverter { 
    myCustomFunc(stuf,stuf){} 
    toView(array, searchTerm){return this.myCustomFunc}} 

回答

4

您可能需要爲數組創建一個值轉換器來執行此操作。

的HTML視圖(S):

<div repeat.for="item of [1, null, 2] | notNullFilter">${item}</div> 

過濾器(SRC \資源\值轉換器\ notNullFilterValueConverter.js):

export class notNullFilterValueConverter { 
    toView(array) { 
    return array.filter(item => item !== null); 
    } 
} 

並將其註冊爲在全球主要的資源。 js設置:

import {Aurelia} from 'aurelia-framework'; 

export function configure(aurelia: Aurelia) { 
    aurelia.use 
    .standardConfiguration() 
    .developmentLogging() 
    .globalResources([ 
     "./src/resources/value-converters/notNullFilterValueConverter" 
    ]); 

    aurelia.start().then(() => aurelia.setRoot()); 
} 

您可以在給出的數組中插入任意數量的值轉換器全球資源功能。

將輸出

<div>1</div> 
<div>2</div> 

如果在某個階段,這個白濁/凌亂,你可以將它移動到一個功能:

export function configure(aurelia: Aurelia) { 
     aurelia.use 
      .standardConfiguration() 
      .developmentLogging() 
      .feature('resources'); 

     aurelia.start().then(function() { return aurelia.setRoot('views/app'); }); 
} 

添加一個名爲「資源」文件夾中的文件index.js

export function configure(config) { 
    config.globalResources('./notNullFilterValueConverter', './welcomeValueConverter'); 
} 

'功能'和插件是一樣的,唯一不同的是它是活着的我你的源碼樹。它允許您創建多個功能,因此可能會有一個名爲company-array-filters和一個custom-company-elements的公司。

+0

謝謝。所以「資源」和「功能」就是我應該看到的。乾杯! – Trondh