来自html元素的Angular2函数调用,没有加载事件(或类似的)

时间:2017-03-29 14:34:08

标签: html angular

我是Angular的新手,遇到了一个似乎有javascript工作的问题,但它们并不优雅。

我有一个带有数组属性的模型。我在list属性中构建了一些html选择选项。这一切都很好。当我尝试设置默认值时,问题出现了... html元素没有加载事件。

我尝试了很多html元素,他们似乎也没有加载事件,但我当然可能做错了。

我已经看到了在html之后放置javascript标签的解决方案,我可以这样做,但我真的在Angular中寻找更优雅的方式。

我看到了这个SO post并且认为这是我的答案,但是我发出了一个警告,我同意这一点,因此它似乎不是一个好的解决方案。 无论我试过它只是为了看它是否会起作用我得到了:

无法执行' setAttribute' on'元素':' {{loadDefaults()}}'不是有效的属性名称

<span {{loadDefaults()}} ></span>

那么如何在组件中触发AS2功能以加载默认值?

HTML(顺便说一下,这不是整页加载所以没有正文标记):

<tr>
   <td *ngFor="let loc of locOptions;">
      <span>{{loc.text}}</span>
      <input type="radio" name="radiogroup" [value]="loc.value" (change)="onSelectionChange(loc.value)">
  </td>
</tr>

修改

我认为错误地认为ngoninit会在html元素渲染之前过早发射。

所以也许建议的是我在模型中添加一个boolean默认值,并在渲染元素时绑定THAT。

2 个答案:

答案 0 :(得分:3)

在你的ngonit函数中,将this.locOptions设置为默认值。稍后可以在任何函数中更改该值,并且更改将反映在视图中。希望这会对你有所帮助。

答案 1 :(得分:1)

您应该使用defaults : any; ngOnInit { this.defaults = loadDefaults(); } loadDefaults() { //get data } 来初始化数据,并调用从您的组件中检索数据:

<span>{{defaults}}</span>

HTML:

{{1}}