在select标签中获取对象和您的属性 - 角度2

时间:2017-05-25 23:21:29

标签: javascript html angular

我有一个这个json:

{
  "OfferFieldList":
    {
       "Title":"someTitle",
       "Id":"someId"
    },
   "OfferFieldList":
    {
       "Title":"someTitle",
       "Id":"someId"
    }
}

我有这个选择标签:

<select formControlName="offerFielId" (change)="changeValueType($event.target.value)" #offerFielId >
    <option value="{{offerFile.id}}" *ngFor="let offerFile of OfferFieldList">{{ offerFile.title }}</option>
</select>

当我执行它一切正常时,我可以在我的changeValueType()方法中获取标题或id,但我需要获取所有对象,当我尝试获取对象时(使用此代码):

<select formControlName="offerFielId" (change)="changeValueType($event.target.value)" #offerFielId >
    <option value="{{offerFile}}" *ngFor="let offerFile of OfferFieldList">{{ offerFile.title }}</option>
</select>

但当我这样做并尝试访问我的对象属性

changeValueType(paramer) {
    this.myVar = paramer.title;
}

标题属性未定义&#39;。

所以我试着安慰它

changeValueType(paramer) {
        console.dir(paramer)
    }

我得到一个像&#34; [object Object]&#34;这样的值,所以我尝试使用以下内容包含对象:

console.dir(paramerOfChangeValueTypeMethod));

但没有任何内容。

我也尝试发送这个值,我得到像&#34; changeValueType&#34; input.input.ng-untouched.ng-pristine.ng-invalid&#34;

所以我尝试发送$ event,我得到了一个大对象,导航到这个大对象,我发现了value属性,但还有另一个&#34; [object Object]&#34;

我也尝试过这样做

<select formControlName="offerFielId" (change)="changeOfferField({{ offerField.title }})">
        <option value="{{ offerField.id }}" *ngFor="let offerField of offerFieldList">{{ offerField.title }}</option>
</select>

但更改属性不接受{{someValue}}语法

我在google上受到了攻击,但是我建立的每一个解决方案都不起作用,为他们工作,但不是为了我,我无法得到那个对象。

1 个答案:

答案 0 :(得分:0)

您需要使用 [ngModel] 并通过 (ngModelChange) 事件观察其更改,以执行您的操作\操作。并使用< strong> [ngValue] 而不是value

请参阅working plunker