iT邦幫忙

0

angular 6 formGroup submit 藏元素標籤與取值

jquery 有選擇器可抓取元素內特定標籤的值,像下面可能是$('form').attr('tag');

<form [formGroup]="from" (submit)="Submit()" tag="{{value}}">

angular用formGroup在送出時觸發(submit),有辦法在Submit()裡面去吃tag得值嗎。

也可以用Submit(value)直接塞value
但發現ngFor去開多個form裡面放的value似乎會有問題。

<div *ngFor="let item of items">
<form [formGroup]="from" (submit)="Submit(item.value)">
</form>
</div>

item.valueSubmit()接收都是同一個值,但顯示在前台都是正常的

另外發現tag="{{item.value}}"好像不行,id={{item.value}}有真實存在的標籤才行,有其他方式賦予值嗎

2 個回答

0
AlanShun
iT邦新手 5 級 ‧ 2018-09-28 16:04:59

如果要給自定義的attribute,你可以這麼做

  • HTML
<div [attr.tag]="value"></div>
  • TS
    value = 'Hi I am tag';
  • 輸出結果
<div tag="Hi I am tag"></div>
看更多先前的回應...收起先前的回應...
Zaku iT邦新手 4 級 ‧ 2018-09-28 17:13:22 檢舉

感謝大大,那component該怎麼取得[attr.tag]的值

AlanShun iT邦新手 5 級 ‧ 2018-09-28 18:23:02 檢舉

在Angular裡面我們通常不直接使用attr來做操作,建議使用@Input() 來取得參數,不過如果你真的想取得參數的話,可以使用@Attribute來取得,

可以參考Kevinyang大大的文
https://blog.kevinyang.net/2018/01/31/angular-attribute/

詳細可以看另一篇
https://netbasal.com/getting-to-know-the-attribute-decorator-in-angular-4f7c9fb61243

Zaku iT邦新手 4 級 ‧ 2018-10-01 09:29:47 檢舉

但我沒有要跨越component傳參數,@Input()的用意是?主要是要區分ngFor出來的元素

Zaku iT邦新手 4 級 ‧ 2018-10-01 09:49:02 檢舉

還是說我每個ngFor都另外建立一個component出來?

Zaku iT邦新手 4 級 ‧ 2018-10-01 11:40:41 檢舉

大大系統掛了無反映,暫時無法選你的為最佳解

0
joneshong
iT邦新手 5 級 ‧ 2018-10-09 18:02:44

因為您這樣的情況是ngFor多個表單
在任一表單中送出值都會觸發submit()

表單或許該拆開
能不能用在 formControlName上用ngFor
submit就不用那麼複雜的方式處理

當然還是有解啦...如果硬要這樣寫的話

Zaku iT邦新手 4 級 ‧ 2018-10-11 15:51:58 檢舉

恩後來有找到問題,都觸發到同一個表單結構,改變數後就可以了,感謝大大。

我要發表回答

立即登入回答