请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

方法调用 传参的疑惑 谢谢老师

58ad519c0001d77105000393.jpg

58ad519c0001620305000185.jpg

想请教一下老师,

这里search.html中tab-click="tClick(id,name)" 传入的方法是两个参数id和name。

而在子级tab.js中调用$scope.tabClick(item)的时候,为什么是传入item这个值,而不是传入item.id和item.name。

我测试过,$scope.tabClick(item.id,item.name)是会报错的,而$scope.tabClick(item)就没有问题。

正在回答

1回答

慕雪1613582 2017-02-22 17:49:50

通过查看指令相关源码可以看出指令在执行回调函数的时候使用的是内置服务$parse 来解析的。而$parse需要传入json对象来绑定函数作用域,所以你那种传入方式会报错。

 case '&':
            // Don't assign Object.prototype method to scope
            parentGet = attrs.hasOwnProperty(attrName) ? $parse(attrs[attrName]) : noop;

            // Don't assign noop to destination if expression is not valid
            if (parentGet === noop && optional) break;

            destination[scopeName] = function(locals) {
              return parentGet(scope, locals);
            };
            break;

如果有兴趣可以看下 angular的源码关于$parse 的部分

0 回复 有任何疑惑可以回复我~
  • 提问者 wy111111 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2017-02-23 11:18:13
  • 提问者 wy111111 #2
    那请问老师,是不是当父级的方法里参数是(id,name),这样到了子级传入ajax的返回值的时候,需要传入json对象,这个对象需要有id和name属性。我的理解对吗?
    回复 有任何疑惑可以回复我~ 2017-02-23 12:25:33
  • 慕雪1613582 回复 提问者 wy111111 #3
    嗯~~~~
    回复 有任何疑惑可以回复我~ 2017-02-23 13:43:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信