我试图弄清楚如何在打字稿中写一个角度滤镜(这是绊倒我的部分)一些注射。
这是我到目前为止所做的:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/olp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<SlidingDrawer
android:id="@+id/slidingDrawer1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:content="@+id/content"
android:handle="@+id/handle" >
<android.support.v4.view.ViewPager
android:id="@+id/handle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#FFF000" >
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</ListView>
</LinearLayout>
</SlidingDrawer>
</RelativeLayout>
我需要注入export function StrLimit() {
return function(input, limit) {
if (input.length <= limit) {
return input;
}
return $filter('limitTo')(input, limit) + '...';
}
}
angular.module('myApp').filter('strLimit', StrLimit);
,我想为此使用原生TS。关于如何做到这一点的任何想法?
编辑:我已经看过this question's answer有关此主题的内容,但使用模块似乎很草率,特别是因为以上所有内容已经嵌套在模块中。 < / p>
答案 0 :(得分:4)
在我的项目中,我们使用$inject
属性,如下所示:
export function StrLimit($filter) {
return function(input, limit) {
if (input.length <= limit) {
return input;
}
return $filter('limitTo')(input, limit) + '...';
}
}
StrLimit.$inject = ['$filter'];
angular.module('myApp').filter('strLimit', StrLimit);
如果你有一个打字稿类,它将是public static var $inject = ['$filter'];
答案 1 :(得分:1)
在过滤器的注册中注入$ filter属性让它对我有用:
export class TableStrictFilter{
public static Factory($filter:ng.IFilterService) {
return (input:any, predicate:any) => {
return $filter('filter')(input, predicate, true);
}
}
}
注册过滤器:
.filter('tableStrictFilter',['$filter', TableStrictFilter.Factory]);