我使用angular 2编写应用程序。
我有一个输入,我想输入字符串列表,然后用逗号分隔它们。
输入:Item1,Item2,Item3
输入字符串我必须用逗号分隔。
addItems(toSplit: string) {
splitted: string[] = toSplit.split(",");
}
我有一个对象:
export class Foo {
items: string[];
}
如何将所有拆分字符串推送到foo.items?
答案 0 :(得分:2)
我有一个对象
那不是一个对象,它是一个类。 (好的,授予它,也一个对象。)要访问items
,首先需要一个实例来访问它:
const instanceOfFoo: Foo = new Foo();
然后,一旦你拥有了那个实例并且你拥有了来自split
的数组,你可以:
替换<{1}}实例上的数组:
Foo
或
将添加到您的商品中(例如,如果您使用相同的instanceOfFoo.items = splitted;
多次执行此操作):
Foo
instanceOfFoo.items.push(...splitted);
是扩展符号,应该通过转换在TypeScript中支持。如果你想成为老式的话:
...
如果您已经在之前创建了分裂字符串,则创建instanceOfFoo.items.push.apply(instanceOfFoo.items, splitted);
,您可以将其作为构造函数的参数提供,然后在构造函数中执行其中一个,以更适合您的方式需要:
Foo
或
// Using the array provided directly
export class Foo {
constructor(public items: string[] = []) {
}
}
然后使用其中任何一个:
// Copying the given array
export class Foo {
public items: string[] = [];
constructor(items: string[]) {
this.items.push(...items);
}
}
附注:您在方法中错过了const instanceOfFoo: Foo = new Foo(splitted);
或let
(我认为这是一种方法,因为前面缺少const
):
function
答案 1 :(得分:1)
您可以为constructor
课程创建typescript
。
export class Foo {
constructor(private items: string[]){}
}
现在,您可以创建一个包含拆分数组的类对象。
var foo = new Foo(splitted);
答案 2 :(得分:1)
试试这个:)
class Split {
splitted: string[];
addItems(toSplit: string) {
this.splitted = toSplit.split(",");
}
}
export class Foo {
items: string[];
}
var demo = new Foo();
var test = new Split();
test.addItems("Item1,Item2,Item3");
demo.items = test.splitted;
console.log(demo.items);