V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
ThomasChan
V2EX  ›  JavaScript

angularjs的一个问题,ng-repeat中使用ng-click

  •  
  •   ThomasChan · 2013-12-26 22:03:25 +08:00 · 11409 次点击
    这是一个创建于 3980 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近在学angular 遇到一个问题
    模板是这样

    settings是这样


    结构类似于选项卡

    可是我这么写没效果 点ng-click修改不了ng-include

    可是在另一个页面里这么写是有效果的


    额搞不懂。。
    6 条回复    1970-01-01 08:00:00 +08:00
    leofml
        1
    leofml  
       2013-12-26 22:31:34 +08:00
    teddy1004
        2
    teddy1004  
       2013-12-26 22:52:20 +08:00
    ng-click 里面不用加双括号
    ThomasChan
        3
    ThomasChan  
    OP
       2013-12-26 23:13:55 +08:00
    @leofml
    @teddy1004
    不加双引号的话加载出来就还是ng-click=" L = set.link "
    加双引号加载出来是ng-click=“ L = '模板路径' ”
    所以我就搞不明白是哪儿的问题了
    teddy1004
        4
    teddy1004  
       2013-12-27 01:03:09 +08:00   ❤️ 1
    @ThomasChan 1楼给的文档里面的例子很明白了,ng-click 是不用加花括号的
    还有就是你的代码的 scope 的问题,因为 ng-repeat 里面输出的元素会有自己新的 scope, L 所在的 scope 是 rootScope,所以就导致变成下面的状况
    https://www.dropbox.com/s/0utsjmsiy138hea/Screen%20Shot%202013-12-27%20at%2012.49.18%20AM.png

    你每次 ng-click 的时候其实是在新的 scope 里面在创建一个自己的 L 然后赋值的,而 rootScope 的值是一直没变的,比如随便点击了一个就是下面的状况:
    https://www.dropbox.com/s/8ub06pycsr10m05/Screen%20Shot%202013-12-27%20at%2012.52.17%20AM.png

    解决办法就是,把你代码里面的 L 变成 L.link 或者其他 L.anything
    . 起的作用你可以去 egghead.io 里面看看,专门有讲解的,加了之后 scope 层级就变成这样了:
    https://www.dropbox.com/s/q0c49x4b1vzr66i/Screen%20Shot%202013-12-27%20at%201.00.54%20AM.png

    最后推荐一下我用的这个 chrome 插件,AngularJS Batarang,学 AngularJS 必备~
    teddy1004
        5
    teddy1004  
       2013-12-27 01:07:58 +08:00
    @ThomasChan 图不小心删了
    这是用 L 时候的 scope:
    http://d.pr/i/S8k4

    加了 . 之后的 scope:
    http://d.pr/i/38Rq
    ThomasChan
        6
    ThomasChan  
    OP
       2013-12-27 15:23:15 +08:00
    @teddy1004 非常感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 02:40 · PVG 10:40 · LAX 18:40 · JFK 21:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.