CNode

angularjs事件调用的时候传参不行?

Xxiuxu123发布于12 年前最后回复12 年前4 回复22642 浏览0 收藏

使用angularjs事件调用的时候传递参数当时数字的时候就正常,当是字符串的时候就不行。这个问题大家有没有遇到过啊?

这里我说的如果是固定写死的字符串可以:

<div>
    <span ng-repeat='tag in tags'>
      <span class="n-add-type" ng-click='show("早餐")' ng-repeat='ta in tag'>
          {{ ta.tagname }}
      </span>
      </p>
    </span>
</div>

如果参数是动态的就不行了:

<div>
    <span ng-repeat='tag in tags'>
      <span class="n-add-type" ng-click='show("{{ ta.tagname }}")' ng-repeat='ta in tag'>
          {{ ta.tagname }}
      </span>
      </p>
    </span>
</div>

这样就不行了,页面数据生成的也都是正常的,也没有错误信息。就是点击事件show()不执行。 有没有人遇到相同的问题啊 ?怎么解决的?

这个论坛http://www.angularjs.cn/竟然没有搜索功能,真是无语?

查看回复

回复 (4)

I
ijse#1·12 年前

ng-click='show(ta.tagname)'

X
xiuxu123#2·12 年前
引用 ijseng click='show(ta.tagname)'

这样是对的,可以,但是有点意思的是,网页上面解析之后并不是数据,而是:

<span class="n-add-type ng-scope ng-binding" ng-click="show(ta.tagname)" ng-repeat="ta in tag">
    化妆用品
</span>

还是ta.tagname

R
ringtail#3·12 年前

这个位置需要的是一个变量,如果用{{}}相当于编译出了一个常量,拼接了字符串。你看是不是这个道理

K
kiddkai#4·12 年前
引用 ijseng click='show(ta.tagname)'

@xiuxu123

这样是正确的,因为它是直接去取 scope 里的 ta.tagname 数据,在 ng-click 这个directive link的时候会去处理的 :D

参与回复
登录后即可参与回复。登录